0

这更像是一个理论问题,而不是实际问题。一些基本输入被传递到我的服务器。一般来说,我对其进行编码,但我不会对其进行双重编码。

我正在考虑该决定可能引起的任何问题。一,如果有人在我网站上的表单上输入以下两个字符串:

Apples & Bananas
Apples & Bananas

由于单一编码,这些将分别存储为:

Apples & Bananas
Apples & Bananas

如果我要输出它们,我会在这样做之前对其进行解码。然后用户会看到:

Apples & Bananas
Apples & Bananas

来源是:

Apples & Bananas
Apples & Bananas

因此,我将丢失提交的一些结构,因为实体在提交时基本上等于它的编码版本。

我的直觉是它们应该始终是双重编码的,但我很想听听对此的另一种看法。

4

1 回答 1

1

通常,您应该只将那些编码应用于真正需要的数据。在MySQL 字符串文字的情况下,它是对周围的引号字符和转义字符本身以及其他一些字符的转义。

但是,&在 MySQL 字符串文字中,它不是关键字符,因此不应进行编码,尤其是不应使用不适当的编码,例如 HTML 字符引用。HTML 字符引用编码仅适用于在相应上下文中以 HTML 格式输出数据的情况,其中纯文本 HTML 特殊字符可能导致将用户提供的数据误解为作者提供的数据。

现在关于“双重编码”,如果用户输入,&我希望我的应用程序将其显示为&,因此要求将其编码为&. 因此,无论用户的意图是什么,我都会对输入的任何内容进行编码。

于 2013-06-04T04:56:23.327 回答