在 php 中清理输入和输出的圣杯?

IT技术 php javascript mysql json
2021-01-22 07:29:33

在过去的 8 个月里,我一直在运行和开发一个分类网站,所有的错误都源于一个原因:用户如何输入他们的文本......

我的问题是:是否有一个 php 类,一个插件,我可以做的事情

$str = UltimateClean($str) 在将 $str 发送到我的 sql 之前??

附注。我还注意到当我开始使用 JSON 时问题增加了一倍,因为我还必须小心地以 JSON 格式输出结果。

我面临的一些问题:多语言字符串(不同的字符集)、从 Excel 工作表复制粘贴。
注意:我不担心 SQL 注入。

1个回答

不,没有。

不同的逃逸方式是为了不同的目的。你不能普遍地逃避某事。

对于数据库:PDO 与准备好的查询一起使用

对于 HTML: 使用htmlspecialchars()

对于 JSON: json_encode()为您处理这个

对于字符集: 您应该在页面上使用 UTF-8。这样做,并相应地设置您的数据库,然后看着这些问题消失。

我想我说的是“帮助”,无论如何,JSON 意味着客户端,而 OP 建议用户输入是问题的一部分。
2021-03-13 07:29:33
+1 表示“您无法普遍逃避某事”。如果您觉得需要“通用转义”,那么您可能过早地对输入进行了转义,或者将转义的数据重用于不该用于的目的。
2021-03-16 07:29:33
也许还可以考虑使用 ckeditor 等库进行文本输入。这些可以帮助处理从单词粘贴的场景,但它是客户端。
2021-04-03 07:29:33