防止 SQL 注入和 XSS
Posted
技术标签:
【中文标题】防止 SQL 注入和 XSS【英文标题】:Prevent SQL Injection and XSS 【发布时间】:2019-06-03 04:39:55 【问题描述】:我在我的脚本中发现了这 2 个问题,SQL 注入和跨站点脚本。
SQL 注入:
$cate = mysqli_real_escape_string($connection, @$_REQUEST['cat']);
$categ = mysqli_query($connection, "SELECT * FROM articles WHERE category='$cate'");
category='$cate'
是问题所在。
XSS:
echo'<a href="../category/category.php?cat='.$id_c.'&pn=1" class="list-group-item">'.$catego.'</a>';
但我不明白为什么$cate
错了?
谁是正确解决方案的示例?
谢谢大家
【问题讨论】:
How can I prevent SQL injection in PHP?的可能重复 【参考方案1】:您的问题是您将请求中的值直接传递给 SQL 查询。
防止 SQL 注入的最佳方法是使用预准备语句。准备好的语句解决了 SQL 注入问题。你必须
-
验证 $_REQUEST['cat'] 值
使用(例如)PDO 来准备语句 (http://php.net/manual/en//pdo.prepared-statements.php)
阅读:https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet
【讨论】:
以上是关于防止 SQL 注入和 XSS的主要内容,如果未能解决你的问题,请参考以下文章