我们如何保证用户信息的安全?如何防止恶意的网站窃取数据?
答案是:同源策略。
只有协议相同,域名相同,端口相同的网页,才能算是同源。
而非同源的网站跳转,会有三条限制:
1.Cookie,localStorage(本地缓存)等信息无法被读取(保证了B网站无法拿到用户在A网站的登入信息)
2.DOM无法获得
3.AJAX请求不能发起
为什么要有这三条限制?
让我们设想这样一种情况:A网站是一家银行,用户登录以后,又去浏览其他网站。如果其他网站可以读取A网站的 Cookie,会发生什么?
很显然,如果 Cookie 包含隐私(比如存款总额),这些信息就会泄漏。更可怕的是,Cookie
往往用来保存用户的登录状态,如果用户没有退出登录,其他网站就可以冒充用户,为所欲为。因为浏览器同时还规定,提交表单不受同源政策的限制。
由此可见,"同源政策"是必需的,否则 Cookie 可以共享,互联网就毫无安全可言了。
这三条限制就保证了跟用户刚刚浏览的B网站无法拿到用户在A网站缓存的那些信息,模拟用户在A网站上做一些请求操作。
同源政策规定,AJax请求只能发给同源的网址,否则就会报错。