小编Ril*_*jor的帖子

什么时候应该在HTTP URL中编码星号?

根据RFC1738,可以在URL中使用未编码的星号(*)":

因此,只有字母数字,特殊字符"$ -_.+!*'(),"和用于其保留目的的保留字符可以在URL中未编码使用.

然而,w3.org的命名和寻址材料表明,星号"保留用于在特定方案中具有特殊的重要性",并暗示它应该被编码.

此外,根据RFC3986,URL是一个URI:

术语"统一资源定位符"(URL)指的是URI的子集,其除了标识资源之外,还通过描述其主要访问机制(例如,其网络"位置")来提供定位资源的手段.

它还指定星号是"sub-delim",它是"保留集"的一部分,并且:

URI生成应用程序应对与保留集中的字符对应的数据八位字节进行百分比编码,除非URI方案明确允许这些字符表示该组件中的数据.

它还明确指定它更新RFC1738.

我将所有这些都理解为要求将星号编码在URL中,除非它们用于URI方案定义的特殊用途.

RFC1738的HTTP URI方案标准基准?它是否以某种方式免除星号编码,或者由于RFC3986而在这方面是否过时?

维基百科说,"当没有保留目的时,他不需要对字符进行百分比编码." RFC1738是否删除了星号的保留用途?

各种资源和工具似乎在这个问题上分开了.

PHP urlencoderawurlencode- 后者声称遵循RFC3986 - 对星号进行编码.

然而,JavaScript的escapeencodeURIComponent 不编码的星号.

并且Java URLEncoder 不对星号进行编码:

特殊字符"."," - ","*"和"_"保持不变.

流行的在线 工具(谷歌搜索"在线网址编码器"的前两个结果)也不编码星号.该URL编码和解码工具明确指出,"[T]他保留的字符只有在特定情况下进行编码." 它继续列出星号和&符作为保留字符.它编码&符号,但不编码星号.

Stack Exchange社区中的其他类似问题似乎有陈旧,不完整或难以令人信服的答案:

url http rfc url-encoding

25
推荐指数
1
解决办法
4740
查看次数

当您知道用户名和密码时,通过反CSRF将用户登录到站点

这听起来有点邪恶,但我要忍受.它也不是特定的Rails问题,即使这两个站点使用Rails.(对这两件事情提前道歉)

想象一下两个网站都使用Ruby on Rails:

  • mysite.com,我是一名开发人员,在更改代码等方面拥有完全访问权限,并且还有管理员登录,因此我可以管理用户帐户.

  • theirsite.com,我有一个管理员登录但没有开发访问权限.我知道管理它的人但我宁愿不出于政治原因向他们提出任何好处.然而,这是一个选择.

在每个网站上使用我的管理员登录,我为同一个人创建了一个用户帐户.当他们登录mysite.com时,我希望能够提供一个按钮,将它们直接登录到theirsite.com.我将他们用于theirsite.com的用户名和密码存储在mysite.com数据库的用户记录中,以方便这一点.该按钮是表单的提交按钮,该表单复制了theirsite.com登录页面上的表单,其中包含用户名和密码的隐藏字段.

绊脚石是theirsite.com使用authenticity_token变量处理CSRF,当登录从mysite.com提交时,验证失败.

我第一次试图通过这个,在mysite.com控制器中加载带有表单的页面,刮掉theirsite.com登录页面以获取真实性令牌,然后将其插入我的表单.但这不起作用.

如果我在两个浏览器选项卡中加载theirsite.com登录页面和带有远程登录按钮的mysite.com页面,并手动将theirsite.com表单中的authenticity_token复制到mysite.com表单,那么它可以正常工作.这是因为(我认为)authenticity_token通过cookie链接到我的会话,当我在同一个浏览器中完成所有会话时,会话匹配,但是当我通过抓取从theirsite.com获取真实性令牌时(使用Nokogiri但是我可以使用curl而不是相同的会话.

问题A)所以,我认为我还需要设置一个cookie,以便会话在浏览器和我所做的Nokogiri请求之间匹配.但是,这可能是不可能的,而且正是反CSRF系统旨在打败的那种东西.是这样的吗?

问题B)让我说我决定,尽管有政治因素,我还是要求theirsite.com的所有者进行一些小改动,以便在我们知道他们的theirsite.com用户名和密码时让我们将用户登录到theirsite.com .我可以要求他们做出的最小,最安全的变化是什么?

请随意说"脱掉你邪恶的黑帽子",我认为这是一个有效的回应.问题有点狡猾.

authentication ruby-on-rails cross-domain

6
推荐指数
1
解决办法
447
查看次数

Internet Explorer 的退役是否会扼杀 InternetExplorer Platform API?

据微软称,Internet Explorer 即将退役2022 年 6 月 15 日退役。

InternetExplorer Platform API在什么时候会因此更改而停止工作?

是否有任何文档描述了该 API 的日落细节和时间安排?

或者它会自动转换为使用Microsoft Edge Internet Explorer (IE) 模式吗?

或者它不属于退役范围,因为它是“Internet Explorer 平台 (MSHTML/Trident),包括 WebOC”的一部分?Stack Overflow 的另一个答案说 ActiveX 会因为成为该扩展平台的一部分而生存下来?(微软肯定地声明ActiveX 是 Edge Internet Explorer 模式的一部分。)

vb6 internet-explorer

3
推荐指数
1
解决办法
196
查看次数