0

我要来回讨论这个,所以我想我会在这里问。我希望有一种适用于所有输入字段(文本、选择、文本区域)的技术。

  1. 首先,我们使用 php 脚本处理用户输入。可能存在一些验证错误,因此可能需要使用用户输入的值重新显示表单。htmlspecialchars($fieldValue, ENT_QUOTES)在这里不起作用,因为如果出现验证错误并重新显示表单,则用户输入的所有引号都将转换为 \"。至少在文本区域中。

  2. 成功验证表单后,我们需要将输入发送到数据库。列值需要是“安全的”,因此需要进行一些转换。我知道在从数据库中读取数据时,我可能也需要应用某种形式的转换,尽管我希望在这方面是错误的。

寻找不涉及太多代码的良好实践。

===

就像更新一样。在 Domino 形式中,没有任何形式的转义,也不需要特殊处理。Notes 只是自动完成它。在使用 JPA 的 Java 应用程序中,所有这些“安全性”也会自动处理。我知道 php 可能没有等价物,但这是一个常见的问题,我选择相信我错过了一些非常简单的解决方案。

4

3 回答 3

1

只需用于mysql_real_escape_string()过滤需要进入数据库的输入!

于 2013-06-23T02:55:28.400 回答
0

快速解决\"问题,magic_quotes关闭,无论如何你都不应该使用它。

对于您的其他问题,请使用支持prepared statements 的驱动程序,如果您正在寻找等效的JPA ,请不要使用 ORM

要验证表单中的用户输入,请使用表单库来处理这些日常任务。

于 2013-06-23T04:34:52.963 回答
0

你可以使用像 Doctrine 这样的 ORM 来自动做很多事情。您确实应该使用 PDO 进行 DB 访问,这将允许您进行“绑定”而不是“转义”。仅使用转义可能会给 UTF8 字符和编码带来问题。

于 2013-06-23T05:33:25.877 回答