Ror*_*ory 15 html browser utf-8 character-encoding
我想在我们的网站上标准化UTF8.我们所有的数据库和互联网资料都是UTF8.我们所有的Web服务器都在发送charset=utf-8HTTP标头.但是我发现通过将我的Firefox(视图 - >字符编码)中的编码更改为其他内容,我可以将拉丁字符9字符输入到表单中,PHP只会将它们视为格式错误的UTF8.
我要担心多少钱?用户的Web浏览器是否可以覆盖UTF8字符集标头并发送非UTF8?
更新:有几个人建议accept-charset个人表格.但是,我宁愿不必更改每个Web表单.假设我可以控制HTTP内容类型标头,并将其设置为UTF8,我有什么需要担心的吗?
Ben*_*tto 11
用户的Web浏览器是否可以覆盖utf8字符集标头并发送非UTF8?
当然.您无法控制客户端,客户端可以执行任何操作,包括让用户覆盖正常编码并导致垃圾邮件(或垃圾邮件通过)发送到您的服务器.
也就是说,听起来你已经采取了大部分重要步骤.您的实际HTML文档是UTF-8编码并明确标记为这样,这意味着浏览器通常默认也会以该编码提交表单.(需要注意的是HTML规范并不需要这个.指定接收字符集的形式明确是唯一符合规范的保证.)我怀疑,因为预计在所有现代浏览器,这将工作,你可以很容易地进行测试.
在服务器上,您的工作始终是在对您的服务很重要的范围内验证您的输入.虽然绝大多数用户都是仁慈的并且使用现代标准浏览器,但HTTP协议是开放的,并且古怪的用户和恶意黑客都在那里,并且两者都可以抛出他们想要的任何类型的数据.确保在涉及安全性或经过身份验证的数据时不要对数据编码做出假设,并在将其推送到数据库之前对其进行清理.
| 归档时间: |
|
| 查看次数: |
7138 次 |
| 最近记录: |