html – 我可以强制Web浏览器发送表单文本为UTF8吗?

我想在我们的网站上对UTF8进行标准化.我们所有的数据库和互联网的东西都是UTF8.我们所有的Web服务器都发送了charset = utf-8 HTTP头.然而,我发现通过将Firefox(视图 – >字符编码)中的编码更改为其他内容,我可以在表单中输入拉丁文-9字符,而将 PHP视为格式错误的UTF8.

我要担心多少钱?用户的Web浏览器是否可以覆盖UTF8字符集头文件并发送非UTF8?

更新:有几个人建议对个人形式表示接受.不过,我宁可不必更改每个网页表单.假设我可以控制HTTP内容类型的头文件,并设置为UTF8,我有什么要担心的吗?

解决方法

Is it possible for the user’s web
browser to override the utf8 charset
header and send non-UTF8?

当然.您不能控制客户端,客户端可以做任何所需的操作,包括用户覆盖正常的编码并导致垃圾(或垃圾通过)发送到服务器.

也就是说,这听起来像是在这里采取了重要的步骤.您的实际HTML文档是UTF-8编码并明确标记为这样,这意味着浏览器通常会认提交该编码中的表单. (请注意,HTML规范不要求,明确指定表单上的accept-charset是唯一的规范兼容保证.)我怀疑这将在所有现代浏览器中按预期方式工作,您可以轻松测试.

在服务器上,您的工作总是在您的服务重要程度上验证您的输入.虽然绝大多数的用户都会仁慈并使用现代标准的浏览器,但HTTP协议是开放的,两个古怪的用户和恶意的黑客都在那里,而且两者都可以抛出任何你想要的数据.确保在涉及安全性或身份验证数据时不会对数据编码做出假设,并在将其推送到数据库之前将其清理干净.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些