gpt4 book ai didi

python - 浏览器字符集优先顺序

转载 作者:行者123 更新时间:2023-12-01 06:04:29 25 4
gpt4 key购买 nike

客户端浏览器正在发送 header HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.3。我仅将网页作为具有正确 header 的 utf8 提供,但浏览器会从使用 ISO-8859-1 字符集编码的表单发布数据。我的问题是,浏览器是否总是更喜欢按照其 ACCEPT_CHARSET header 的顺序使用字符集,以便我可以可靠地编写一个中间件,该中间件将使用第一个条目(在本例中为 ISO-8859-1)解码任何发布的数据,并将其编码为 utf8。

更新:

我使用 accept-charset="utf-8" 更新了表单标记,但仍然看到出现非 unicode 字符。用户从其他地方(lastpass、excel 文件)复制/粘贴密码是否可能会注入(inject)非 unicode 字符?

最佳答案

请求 header Accept-Charset(可能会映射到HTTP_ACCEPT_CHARSET服务器端)表示客户端的首选项,当服务器能够提供服务时使用不同编码的资源。服务器可能会忽略它,而且经常会忽略它。

如果您的页面采用 UTF-8 编码并如此声明,则页面上的任何表单都将以 UTF-8 编码发送其数据,除非您指定 accept-charset 属性。因此,如果浏览器以 ISO-8859-1 编码发布数据,则这是一个浏览器错误。不过,在得出结论之前需要对此进行分析。

有一种 ald 技术包含一些特殊字符,为了安全起见,使用字符引用编写,作为隐藏字段的值。然后,服务器端处理程序可以获取该字段的值并检测编码不匹配,甚至可以从特殊字符的编码形式试探性地推断出实际编码。

关于python - 浏览器字符集优先顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8841227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com