Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

设计一个策略和方法,实现在https的前端项目里进行http请求 #28

Open
airuikun opened this issue May 12, 2019 · 10 comments

Comments

@airuikun
Copy link
Owner

airuikun commented May 12, 2019

No description provided.

@yuanxiaowa
Copy link

  • 反向代理

@shenyanggg
Copy link

1.在每个请求中,藏个鸡贼的地方藏个 ‘秘钥1’
2.配合前端内的一个 ‘秘钥2’
3.每次请求内容根据秘钥动态刷

@nelsonkuang
Copy link

好简单的,经常用到,给大家一个思路,img

@yakey
Copy link

yakey commented May 14, 2019

iframe

@WormW
Copy link

WormW commented May 14, 2019

反向代理+1

@gaoryrt
Copy link

gaoryrt commented May 15, 2019

如果HTTPS页面包括由普通明文HTTP连接加密的内容,那么连接只是被部分加密:非加密的内容可以被嗅探者入侵,并且可以被中间人攻击者修改,因此连接不再受到保护。当一个网页出现这种情况时,它被称为混合内容页面。

混合内容 - 安全 | MDN

其中提到,<audio> <img> <video> <object> 的 http 请求 被认为是被动,不能改变网页的其他部分。
然而 <script> <link> XMLHttpRequest <iframe> css 中的 url 方法 <object> 的data 属性 属于主动活动内容,可以改变原页面的内容,窃取敏感数据,容易收到攻击。

对应的,在 什么是混合内容? | Web | Google Developers一文中已经做了相关实验,测试了主动和被动的混合内容

  • <script> 均默认阻止
  • XMLHttpRequest 阻止
  • <a> 不会产生混合内容
  • <img> 仍会加载混合内容图像,但也会向用户显示警告

image
👆被动混合内容全是警告

image
👆主动混合内容就阻止了

所以 iframe、script、xhr 都是不行的

但是使用 img 作为被动混合内容可以发送请求,
请求 img 返回 204 就是 onerror,
返回 1x1 的图片就是 onload,
这就是一个 boolean,多发几个带上序列,就可以从服务器获取到返回值了

还有说反代的,请注意审题,把 https 代理到 http 了,还算是「在https的前端项目里进行http请求」吗?

@JserJser
Copy link

repost

@jiangtao
Copy link

get 请求

在没有 CSP(Content Security Policy)的考虑上, get 请求都是可以的

  • img get
  • script create
  • iframe

反向代理

直接反向代理, 比如 nginx 代理, node代理等等

CORS

要发请求的域 设置 允许发请求的域(http) CORS 头

  • Access-Control-Allow-Origin
  • Access-Control-Allow-Methods
  • Access-Control-Allow-Headers
  • Access-Control-Max-Age

@jiamianmao
Copy link

加上
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests" />
即可

@maskj4
Copy link

maskj4 commented Apr 21, 2024

现在img也不行了,我还想用Git pages整点花活G了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests