php – 在将用户输入存储到数据库之前转义/编码用户输入是否更好,或者将其存储在数据库中并在检索时将其转义?

我正在使用htmlspecialchars()函数来防止XSS攻击.我怀疑从下面将数据存储在数据库中的更好方法是什么.

方法1:应用htmlspecialchars()函数后存储用户输入值.使用它,用户输入“< script>”将成为“& lt; script& gt;” .

方法2:按原样存储用户输入,并在检索数据并在页面上显示时应用htmlspecialchars()方法.

我怀疑的原因是我相信使用方法1会在数据库上产生开销,而使用方法2数据需要在通过php请求时反复转换.所以我不确定哪一个更好.

有关更多信息,我使用htmlspecialchars($val,ENT_QUOTES,“UTF-8”),以便转换’和’.

请帮我清除疑惑.如果可能,还提供说明.

谢谢.

最佳答案
一个更好的理由是,在截断以适应某个空间时,你会陷入诸如“& quo ……”之类的可憎之中.抵制诱惑,使您的数据超过最低要求.如果您担心重新处理数据,请将其缓存.

转载注明原文:php – 在将用户输入存储到数据库之前转义/编码用户输入是否更好,或者将其存储在数据库中并在检索时将其转义? - 代码日志