gpt4 book ai didi

php - 如何清理变量以防止 sql 注入(inject) - union select?

转载 作者:行者123 更新时间:2023-11-29 05:35:57 24 4
gpt4 key购买 nike

我看了很多防止sql注入(inject)的文档。他们说使用 PDOmysql_real_escape_string

我编写 BBS 代码(旧式...),以及使用我的 BBS 代码的人,做一些简单的代码,例如:

select * from $g4[member_table] where mb_id='$mb_id' and mb_1='$my_option'

$mb_id 执行 mysql_real_escape_string但是 $my_option 可能不会。所以我想使用 clean_sql() 等 php 函数清除所有 $_GET$_POST$_REQUEST 变量。

clean_sql() 清除所有sql语句当 $my_option 值为 "1' union select * from g4_member where mb_id='admin'"

请让我知道像 clean_sql() 这样的函数?

===cleal_sql 必须与 php 4.x 一起使用。

最佳答案

无论是否使用 UNION,SQL 注入(inject)的最佳实践都是相同的。 $_POST$_GET$_REQUEST 或任何其他形式的用户提供的数据也是如此。使用准备好的语句(通过 PDO 或 MySQLi)或 mysqli_real_escape_string()

当然,您应该更进一步,在尝试将用户提供的数据保存到您的数据库中之前验证和清理用户提供的数据。。类似 filter_var() 的功能和 ctype_*是验证和/或清理数据的简单方法。

关于php - 如何清理变量以防止 sql 注入(inject) - union select?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10560411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com