防止HTML插入到MySQL表中


Prevent HTML insert into MySQL Table

我已经编写了一个小的评论函数在我的网站上的PHP。我注意到存在巨大的安全风险。用户可以编写一些HTML/PHP/MySQL并将其插入到表中。有什么简单的方法可以预防吗?

这是我的PHP插入脚本:
<?php
    if ( $_SERVER["REQUEST_METHOD"] == 'POST' ) {
    $kommentar_neu = $_POST["kommentar"];
    if (!empty($kommentar_neu)) { 
        $order = "INSERT INTO $db_kommentare
        (kommentar, teilnehmer, kommentardatum, projektnummer)
        VALUES
        ('$kommentar_neu', '$teilnehmer_name', '$zeiteingabe', 
         '$projektnummer_hw_order')";
    }
    }
?>

你所描述的问题被称为"SQL注入"。有很多方法可以处理它,所以答案对于这种格式来说太长了,但是谷歌一下"SQL注入"应该可以让你开始。

在任何情况下,永远不要(好吧,有一个值得注意的例外…)使用stringbash创建SQL语句。创建一个带参数的预处理语句并传入。

一个好的起点可能是:

http://php.net/manual/en/security.database.sql-injection.php

这涵盖了SQL注入到SQL中,但是其中的一些原则是适用的。

您可以使用各种方法来防止这种情况。your_variable美元;

$filter_variable = htmlspecialchars($your_variable);
$filter_variable = mysqli_real_escape_string($conn,$your_variable);

使用prepare语句创建SQL查询。

希望对你有帮助。

快乐编码。