【问题标题】:Questions about data storage / MYSQL关于数据存储/MYSQL的问题
【发布时间】:2013-11-07 04:14:23
【问题描述】:

1.过滤器
我使用 PDO 并想知道是否仍然需要潜在的转义字符,例如 ('or'' =')
已经看了很多,有人说PDO足以防止SQL注入

2。 BBCode
在文本字段中htmlspecialchars 是不显示 html 格式的最佳选择吗?

谢谢

【问题讨论】:

  • 如果您有 2 个问题,请提出 2 个问题。
  • 在阅读owasp.org/index.php/Top_10_2013-Top_10stackoverflow.com/q/60174/1415724 这两篇文章时,您会发现您需要学习的大部分或全部内容。请务必花时间仔细阅读它们。
  • @Dude 你的回答很有帮助——你很擅长,谢谢
  • 感谢@Fred-ii 我现在阅读
  • @PapaCharlie 什么答案?

标签: php pdo sql-injection bbcode


【解决方案1】:
  1. 仅 PDO 是不够的。准备好的语句或转义是正确的方法,无论您使用哪种访问方法。见this question
  2. BBCode 不是 HTML。如果您使用的是 BBCode,则不需要 htmlspecialchars

【讨论】:

    【解决方案2】:

    如果它是仍然必要的潜在转义字符,例如 ('or'' =')

    事实上,从未转义“危险”字符,如 'or'=

    PDO 足以防止 SQL 注入

    PDO 本身不做任何保护。它是prepared statement,它为查询中的每个动态数据使用占位符,确保安全。

    对于 PDO 提供的预准备语句未涵盖的情况,请使用 safeMysql 或手动格式化查询部分并将其列入白名单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      • 2012-01-30
      相关资源
      最近更新 更多