web安全的三要素
机密性
-数据不能泄露 -手段:加密
完整性
-数据是完整的,没有被篡改 -手段:数字签名
可用性
-服务应该随时可用 -分布式拒绝攻击(?)
同源策略
-同源策略是由网景公司提出的一种安全策略,
-是web安全的基础,由浏览器实现,
-指的是当浏览器执行一段脚本时会判断是否来自同源,如果是执行,如果不是会在浏览器报一个异常,表示拒绝访问,
-同源( Origin)指的是,同协议,域名(或ip),端口
-cookie,DOM,XmlHttpRequest
为什么要使用同源策略?
你正在访问bank.com,输入用户名密码,登录成功,服务器返回cookie,浏览器存储下来,这时候又打开一个a.com,a.com是个黑客网站,执行了一段JavaScript从浏览器中取得了cookie,这时候黑客就可以假冒你来登录bank.com了
给这个策略撕开个口子
有的时候我们自己需要在本源中访问其他源的该怎么办呢?
-例外情况,访问其他源 <script> <image><iframe><link>
-这些加载进来的文件,浏览器认为他们的源是 当前网页的
突破同源策略
-后端服务器转发 发给自己后端服务器,服务器去访问其他源,并把结果返回到界面 -
-JSONP
-跨域资源访问 浏览器和服务器之间的强约定,浏览器会自动在http header 里加上不同源地址发送到服务器,服务器添加代码判断是否认可,下面链接有详细说明
http://www.ruanyifeng.com/blog/2016/04/cors.html
保护密码
明文存储 2012年csdn密码泄露事件,600万密码泄露
密码hash
-原始密码经过hash 后得到一个hash值
-这个hash值单项不可逆
-相同的密码,得到的hash值相同
-密码只存hash值,还是不安全,有人的密码设置非常简单,密码可以通过彩虹表撞库的方式撞出来
加点盐
- 让密码hash随机化
-(salt+密码)=》hash值
https://blog.coderzh.com/2016/01/10/a-password-security-design-example/
web安全
sql注入
XSS(跨站脚本攻击)
- CSRF(跨站脚本伪造)
- Session Fixation