我正在尝试使用清理function
来保持代码的其余部分简单。
由于我正在使用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)));
}
答案 0 :(得分:1)
我看到了清理字符串的两个原因:
防止SQL注入
您应该使用prepared statements而不是使用real_escape_string()
来阻止SQL注入。 Mysqli扩展支持预处理语句。它们最安全且易于使用。使用它们。
防止XSS攻击
要防止XSS攻击,htmlentities()
和strip_tags()
可能会有所帮助。您还应该确保正确处理输入字符集的函数。
您还应该从OWASP
阅读此文档