php - 清理 $data 和 $item 函数

标签 php mysql mysqli

我正在尝试清理函数以保持其余代码简单。 由于我使用的是 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/

相关文章:

php - 当optimized_write设置为True时,是否可以使用Openpyxl并行创建多个Excel文件?

PHP:转换日期格式时,使用 sprintf 加载数据文件中出现 '%' 问题

javascript - 无法在选择选项中显示查询结果

php - MysQL 忽略 int 值 - 键 'PRIMARY' 的重复条目

php - 用于搜索建议程序的简单 PHP/Ajax - 仅显示完整输入的数据库结果

php - 在 PHP 中将整数舍入到最接近的 5 的倍数

javascript - 从 AJAX 调用获取结果到 javascript 变量

php - 为什么我不能使用 mysqli_query 从 mysql 数据库表中获取数据?

php - 如何在 Laravel 中检索 FormData

mysql - 维护专门的日志表或计算每个 sql 的条目数是更好的做法吗