我正在尝试清理函数
以保持其余代码简单。
由于我使用的是 MYSQLi
我想知道下面的代码是否正确?
function sanitize ($data){
global $db_connect;
return htmlentities(strip_tags($db_connect->real_escape_string($data)));
}
function array_sanitize ($item) {
global $db_connect;
$item = htmlentities(strip_tags($db_connect->real_escape_string($item)));
}
最佳答案
我看到您清理字符串的两个原因:
防止 SQL 注入(inject)
你应该使用 prepared statements而不是使用 real_escape_string()
来防止 SQL 注入(inject)。 Mysqli 扩展支持准备好的语句。它们最安全且易于使用。使用它们。
防止XSS攻击
为了防止 XSS 攻击,htmlentities()
和 strip_tags()
可能会有所帮助。您还应该确保正确处理输入字符集的函数。
您还应该阅读来自 OWASP 的文档
关于php - 清理 $data 和 $item 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14713994/