我想知道是否有办法发送带有http请求的引用者虽然它已在浏览器中被启用(例如使用javascript)?
未发送推荐人时遇到的问题:
我正在尝试最小化攻击的变化,因此每当加载页面时我都会更改sessionkey ... sessionid保持不变,但是键更改...所以基本上当页面有一些脚本时 - 或者需要从服务器发送的样式文件refer(r)er是需要正确显示的页面,或者是需要脚本的一些部分。当我在服务器上切换到另一个页面时,引用(r)更改。好的,解释一下,这是一个模式(如果不可理解,请说出来):
start: GET test.html --> referrer := null
`--> GET style.css --> referrer := test.html
---- CLICK ON LINK TO GO TO: 'form.html'
GET form.html --> referrer := test.html
`--> GET sendRequest.js --> referrer := form.html
`--> GET style.css --> referrer := form.html
---- CALL A PAGE DIRECTLY OVER ADDRESS BAR: http://somedomain.com/someotherpage.html
GET someotherpage.html --> referrer := null
因此,要更改sessionkey工作:我只在refer(r)er为null或我正在切换到另一个页面时更改sessionkey ...但是当“Send referer”被转动时这将无法工作关闭,就像你在使用Opera时所做的那样... b / c那么refer(r)er总是为null,当客户端从test.html-page b / c发送style.css请求时我遇到了麻烦然后会设置新的sessionkey,但是对style.css的请求带有旧的sessionkey ...所以最简单的方法(我想......也许我错过了什么)将是使用refer(r) )呃......
答案 0 :(得分:5)
我认为你过于复杂了。
他们必须启用Cookie才能使会话正常运行。添加一个包含当前会话密钥副本的cookie。每当请求html文件时,请测试cookie密钥和会话密钥是否匹配。如果他们不这样做,那么你可能正在进行重播攻击。继续并忽略对.css,。等的请求。你真正应该关心的是你的html文件。
更新密钥并在请求html文件时将其写入会话变量和cookie。
这个推荐者并不重要(无论如何都可以欺骗),你可以防止重播;我认为,这是你最终的目标。
答案 1 :(得分:0)
不确定您希望在此处使用哪种JavaScript,但要记住,如果您使用JavaScript设置用户的去向(例如下一页),那么IE won't send the referrer at all!
所以要小心你为页面转换添加了什么魔力。
答案 2 :(得分:0)
好吧,我不会说我理解你的问题,但是我可能有一个使用JavaScript进行引用模拟的解决方案:你可以使用window.name属性来存储最后加载的URL,在覆盖它之前,它应该存储最后加载的页面的URL。
(老实说,我没有为此目的测试过window.name,但我确实用它来进行跨域通信......)
希望这有帮助。