gpt4 book ai didi

php - 在保存到数据库之前清理 $_SERVER ['HTTP_USER_AGENT' ] & $_SERVER ['HTTP_REFERER' ]?

转载 作者:行者123 更新时间:2023-11-29 01:09:07 29 4
gpt4 key购买 nike

我有一个反馈表,它将包含几个用户输入的字段以及一些由 PHP 函数生成的字段,例如“user-agent”和“referer”。

我的问题是这些字符串在输入之前是否应该进行清理?我知道可以很容易地更改用户代理和引用页面,但是访问者是否可以添加像字符串这样的 SQL 注入(inject),所以当 PHP 提取此信息时它可能会破坏我的表单?

例如,如果用户更改了他们的用户代理或引用页面以包含字符串 Robert'); DROP TABLE 学生;--

最佳答案

“ sanitizer ”这个词非常含糊,最好避免使用。

谈到数据库交互,根本不需要“清理”。只需使用准备好的语句

更重要的是,数据源并不重要。它永远不应该是一个问题,“我们应该正确处理来自这样那样来源的数据吗?”。如果你想的话,这是不合逻辑的。为什么要做这样的区分?为什么要依赖如此模糊的判断?为什么不建立一个统一处理任何数据的既定流程,无论来源如何?

更不用说使用准备好的语句非常简单:

$stmt = $db->prepare("INSERT INTO log (user_agent, referrer) VALUES (?,?)");
$stmt->execute([$_SERVER['HTTP_USER_AGENT'],$_SERVER['HTTP_REFERER']]);

它不仅会使代码更简单而且更安全,而且还能防止各种人为错误。

关于php - 在保存到数据库之前清理 $_SERVER ['HTTP_USER_AGENT' ] & $_SERVER ['HTTP_REFERER' ]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9066383/

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