为什么 fetchArray 不直接应用 htmlspecialchars ?
为了避免 SQL 注入和 XSS,我们使用函数 htmlspecialchars() 或其他函数,如 escapeString。
如果我们每次构造 SQL 查询并获取结果时都必须使用此函数,那么为什么该函数
$results->fecthArray();
不直接应用 htmlspecialchars 函数呢?
To avoid SQL injection and XSS we use the function htmlspecialchars() or others like escapeString.
If we have to use this function every time that we construct a SQL query and get the results, why then the function
$results->fecthArray();
doesn't apply the function htmlspecialchars directly?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当编程/指令语言发生变化时,就会发生注入攻击。例如,从 PHP 到 SQL,您需要
mysqli_real_escape_string
在 SQL 服务器处理之前对查询字符串进行转义。为了回答您的问题,
$results
仍然保留为 PHP 变量,您只需在 HTML 表单上输出之前进行转义即可。大多数人不会立即执行此操作,有些人甚至可能不会输出到 HTML,因此该函数不需要自动应用htmlspecialchars
。Injection attacks happen when there is a change in the programming/instruction language. Example, from PHP to SQL, you need
mysqli_real_escape_string
to escape the query string before processing by the SQL server.To answer your question,
$results
still remains as a PHP variable and you only need to do the escaping just prior to outputting on the HTML form. Most people don't do that straight away and some may not even output to HTML, so the function does not need to applyhtmlspecialchars
automatically.