防止 HTML 插入到 MySQL Table
Prevent HTML insert into MySQL Table
我通过 PHP 在我的网站上编写了一个小评论功能。我注意到存在巨大的安全风险。用户可以写一些 HTML/PHP/MySQL 并将其插入 table。有没有简单的方法来防止这种情况?
这是我的 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 Injection"。处理它的方法有很多,因此对于这种格式,答案会太长,但谷歌搜索 "SQL Injection" 应该可以帮助您入门。
在任何情况下,永远不会(好吧,除了一个值得注意的例外...)通过字符串攻击创建 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);
使用准备语句创建您的 sql 查询。
希望对您有所帮助。
编码愉快。
我通过 PHP 在我的网站上编写了一个小评论功能。我注意到存在巨大的安全风险。用户可以写一些 HTML/PHP/MySQL 并将其插入 table。有没有简单的方法来防止这种情况?
这是我的 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 Injection"。处理它的方法有很多,因此对于这种格式,答案会太长,但谷歌搜索 "SQL Injection" 应该可以帮助您入门。
在任何情况下,永远不会(好吧,除了一个值得注意的例外...)通过字符串攻击创建 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);
使用准备语句创建您的 sql 查询。
希望对您有所帮助。
编码愉快。