
如,http://www.xx.com/a.php 包含一个了 b.js,b.js 里面有 ajax 请求:
$.ajax({ url : "http://www.yy.com/c.php?", dataType : "jsonp", ...... 在在 yy.com 域名下的 c.php 中如何判断来源是 www.xx.com ?
1 lsido 2018 年 4 月 22 日 via iPhone 获取 referer |
3 KKKKKK 2018 年 4 月 22 日 via iPhone Cors 了解一下 |
4 qinrui 2018 年 4 月 22 日 via iPhone 跨域能 ajax 么? |
6 xiaome 2018 年 4 月 22 日 判断来源地址,好像没办法保证绝对准确;都是可以伪造的内容。 如果你是想防止别人改内容请用 CSRF,如果是想防止别人请求你的接口使用一个可靠 token 即可 |
7 580a388da131 2018 年 4 月 22 日 页面跳转才有 HTTP_REFERER,直接打开、Javascript、Refresh、Header 没有 HTTP_REFERER。 |
8 580a388da131 2018 年 4 月 22 日 HTTP_REFERER 做个防盗链就好,不要做安全检查,可以随便改的。 给接口加个验证。 |
9 leven87 2018 年 4 月 22 日 可以在浏览器里面看下 ajax 请求中 eferer 字段的值。如果没有采用其他方法判断。 |
10 leven87 2018 年 4 月 22 日 referer |
11 wsly47 2018 年 4 月 22 日 via iPhone $_SERVER['HTTP_REFERER'] |
12 lsido 2018 年 4 月 22 日 |
13 wwwicbd 2018 年 4 月 22 日 如果是 CSRF 防护的话, 推荐使用身份验证 token,在 server 检查 token 的合法性。 rails 做的就很好,默认都支持好了,可以参考 https://ruby-china.org/topics/35199 |
14 checgg 2018 年 4 月 22 日 从 http header 里面哪 refer 去判断就行. 不过,为什么要判断呢? 客户端所有的参数都是可以伪造的,是不可信的. 判断的意义不大,自己骗自己而已. CSRF 一般是用 token 去解决,详情请搜索 JWT. |