我已经编写了一个小的评论函数在我的网站上的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查询。
希望对你有帮助。
快乐编码。