以类似于 SQL 注入的方式,是否可以利用文本输入字段?
In a similar manner as SQL injection, is it possible to exploit text-entry fields?
例如,在不阻止处理转义字符的网站的评论部分中,转义字符后跟代码可以 "infiltrate" 后端代码。大型网站如何防止这种情况,这是绝对不可能的吗?
也不是不可能。
大网站和小网站防止SQL注入的方式完全一样:
使用查询参数。
这适用于文本字段以及较短的字符串、日期、数字等。
这是 PHP 中的一个假设示例,但任何其他编程语言都存在类似示例。
$text = $_POST['textfield'];
$stmt = $pdo->prepare("INSERT INTO mytable (textcol) VALUES (?)");
$stmt->execute( [ $text ] );
通过在 execute()
之前将内容与 SQL 查询分开,这避免了 SQL 注入的风险。
例如,在不阻止处理转义字符的网站的评论部分中,转义字符后跟代码可以 "infiltrate" 后端代码。大型网站如何防止这种情况,这是绝对不可能的吗?
也不是不可能。
大网站和小网站防止SQL注入的方式完全一样:
使用查询参数。
这适用于文本字段以及较短的字符串、日期、数字等。
这是 PHP 中的一个假设示例,但任何其他编程语言都存在类似示例。
$text = $_POST['textfield'];
$stmt = $pdo->prepare("INSERT INTO mytable (textcol) VALUES (?)");
$stmt->execute( [ $text ] );
通过在 execute()
之前将内容与 SQL 查询分开,这避免了 SQL 注入的风险。