我知道还有其他问题,但他们似乎有一些假设而不是确定性的答案.
我有限的理解是cookie值是:
还有其他"特殊"字符吗?
其他一些q/a表明一个base64对值进行编码,但这当然可能包括等于当然无效的等号.
我也看到了一些建议,可能会引用价值,但会导致其他问题.
RFC我读了一些RFC,包括许多cookie RFCS中的一些,但我仍然不确定是否存在对另一个RFC等的交叉引用,没有明确的简单解释或"回答"我的查询的样本.
希望没有人会说阅读RFC因为问题变成哪个RFC ......?
我想我也读到不同的浏览器有不同的规则,所以如果这很重要,请在你的答案中注意这一点.
Ste*_*n C 22
最新的RFC是6265,它声明以前的Cookie RFC已经过时.
以下是RFC中的语法规则:
cookie-pair = cookie-name "=" cookie-value
cookie-name = token
cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE )
cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E
; US-ASCII characters excluding CTLs,
; whitespace DQUOTE, comma, semicolon,
; and backslash
Run Code Online (Sandbox Code Playgroud)
从而:
特殊字符是空格字符,双引号,逗号,分号和反斜杠.等于不是一个特殊的角色.
特殊字符根本不能使用,但双引号可以包围该值.
特殊字符不能引用.
反斜杠不是逃避.
因此可以使用base-64编码,因为equals并不特殊.
最后,据我所知,RFC 6265 cookie值已定义,以便它们可以与任何实现任何Cookie RFC的浏览器一起使用.但是,如果您尝试使用不符合RFC 6265的cookie值(但可以说确实符合早期的RFC),您可能会发现cookie行为因浏览器而异.
简而言之,符合RFC 6265的字母,你应该没问题.
| 归档时间: |
|
| 查看次数: |
10694 次 |
| 最近记录: |