假设我拥有一个网站www.a.com,该网站在登录后向用户显示了一些信息。这是流程(即使没有明确提及,也假设一切都超过了https) -
只要查看代码,任何人都可以知道JS使用的两个API是www.a.com/login和www.a.com/getdata
现在这里是我感到困惑的情景 -
如果一个流氓实体(或像薄荷这样的人)创建一个网站(www.r.com),询问用户密码并将其发布到API,我的服务器可以知道吗? 这里的JS不是来自a.com,而是完全由r.com重写。 CORS规则或同一原产地政策是否适用于此处?
另一种情况是,如果www.r.com在其页面上嵌入了一个框架,该框架正在加载www.a.com并询问用户名和passwd,那意味着它实际上正在加载a.com JS。在这种情况下,来自r.com的JS可以访问发送到加载a.com的帧的数据吗?
答案 0 :(得分:0)
此处是否适用CORS规则或相同的原始政策?
是。根据同源策略,r.com上的脚本将无法读取它对a.com发出的任何请求的结果。因此,它将无法读取登录令牌。如果您添加CORS支持,那么您可以选择允许r.com访问,在这种情况下,它将能够与您的站点自由交互。
请注意,如果r.com是恶意网站并且能够让用户输入其密码,则浏览器的同源策略实际上不会保护用户。恶意页面只能将信息发送到他们自己的服务器,在那里可以使用用户的凭据将任意请求发送到您的站点。
来自r.com的JS可以访问发送到加载a.com的框架的数据吗?
同源政策也适用于iframe,因此r.com脚本将无法访问发送到a.com iframe的数据。