- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个反馈表,它将包含几个用户输入的字段以及一些由 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/
这个问题在这里已经有了答案: 关闭 9 年前。 Possible Duplicate: HTTP_HOST vs. SERVER_NAME $_SERVER['HTTP_HOST'] 和 $_SERV
我有一个反馈表,它将包含几个用户输入的字段以及一些由 PHP 函数生成的字段,例如“user-agent”和“referer”。 我的问题是这些字符串在输入之前是否应该进行清理?我知道可以很容易地更改
我打印了 $_SERVER,发现 $_SERVER['REDIRECT_URL'] 与 $_SERVER['REQUEST_URI'] 的值相同。两者有什么区别? 最佳答案 REQUEST_URI 是
有什么区别: $_SERVER['SCRIPT_NAME'] 和 $_SERVER['PHP_SELF'] 谢谢。 最佳答案 它们应该包含相同的信息。但是,从历史和技术上来说,两者是有区别的。 SCR
我带着一个简单的问题(或相关问题)回来了。 问题很简单,但我还没有收到答案。我问过很多有不同 PHP 经验的人。但我得到的回应是:“我不知道。我从来没有想过这个。”使用谷歌我找不到任何关于此的文章。希
$_SERVER['PATH_INFO'] 和 $_SERVER['ORIG_PATH_INFO'] 有什么区别?我该如何使用它们? 当我运行 print_r($_SERVER) 时,PATH_INF
我有一个 php 框架,我使用 $_SERVER['SCRIPT_NAME'] 来优化可移植性。这样我就不需要再手动配置路径了。 $this->base_url = str_replace('inde
我做了很多搜索,还阅读了 PHP $_SERVER docs .我是否有权在我的 PHP 脚本中使用哪个用于在整个网站中使用的简单链接定义? $_SERVER['SERVER_NAME'] 基于您的
使用 $_SERVER['REQUEST_URI'] 或 $_SERVER['PHP_SELF'] 作为表单中的操作或作为 href链接? 如果是这样,可以采取哪些措施来降低风险? 最佳答案 您在 w
我必须从 server script 获取远程 url 主机名,以下哪个更可靠: gethostbyaddr($_SERVER['REMOTE_ADDR']) 或 $_SERVER['REMOTE_H
在开始之前,我想指出我浏览了 Stack Overflow 并发现了其他类似的问题 - PHP_AUTH_USER not set?和 HTTP Auth via PHP - PHP_AUTH_USE
我在 php 脚本中使用 $_SERVER['HTTP_HOST'] 和 $_SERVER['REQUEST_URI'] 来获取页面的 url,但 envato 主题检查插件显示警告。 警告:在文件
我位于透明代理后面,该代理始终添加 HTTP_X_FORWARDED_FOR header 。 当我使用 PHP 转储 header 时, header 丢失了。但Python可以工作..哈哈 Pyt
这是对 this question 的扩展我们了解到可以使用 SetEnv 设置 $_SERVER 变量。 下一个问题是:有没有一种方法可以像这样使用 SetEnv: /var/www/www.exa
是否可以使用 .htaccess 或其他 apache 功能在 php 数组 $_SERVER 中设置自定义服务器值。 例如 if($_SERVER['is_special']) { echo
什么相当于 codeigniter 中的 $_SERVER ? 最佳答案 $this->input->server() 更多信息请引用用户指南:Input 关于Codeigniter 和 $_SERV
这是指向当前文件执行的目录吗? 最佳答案 不,它指向您的网络服务器的根目录 - 您网站的最顶层文件夹。 如果你想要当前文件的目录,使用: 目录名(__FILE__); 关于php - $_SERVER
我真的很想使用以下问题的答案:How can I force users to access my page over HTTPS instead of HTTP? 但我一直认为全局 $_SERVER
我需要知道当我处理 $_SERVER 变量时我是否可以安全地使用普通字符串或者我必须使用 mb_* 字符串。 (UTF-8) 例如 $_SERVER['HTTP_HOST'] 可以包含多字节字符? 如
我遇到过以下三行代码: $_SERVER; $_ENV; $_REQUEST; 对我来说,这三行代码似乎什么也没做。它们不会导致任何错误。 我知道这三个全局变量是什么,就是不知道这三行代码是干什么的。
我是一名优秀的程序员,十分优秀!