首先是SQL injection
主要就是在SQL语句的后面加一个结束符合,然后另起一个黑客想要干的command
Origin:
Same-origin policy:
Cross-Origin communication:
Cookie: 就是一般我们去一个网站的时候 第一次要输入账号密码等等,第二次再去就不用。�网站会发给我们一个cookie 下次send cookie给他确认身份就好了。
如果要防xss:server可以set一下http-only flag on HTTP header. 这样的话 如果client用的浏览器还可以的话,就会支持。并且不让JS access document.cookie. 但是http-only flag 在这个情况下不管用:当sent using HTTP时候,没有加密。
Javascript:网站里的主要元素是HTML的DOM元素,js 可以修改DOM in anyways.
CSRF: CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具危险性
主要就是使用例如<img src = '...'> 让client 浏览web的时候不小心把自己的Cookie 发送给黑客的网站。CSRF攻击就相当于恶意用户A复制了我的高级会员卡,哪天恶意用户A也可以拿着这张假冒的高级会员卡去高尔夫俱乐部打19洞,享受美味的饮料了,而我在月底就会收到高尔夫俱乐部的账单!也就是CSRF 攻击可以冒充我去干坏事。
CSRF攻击的主要目的是让用户在不知情的情况下攻击自己已登录的一个系统,类似于钓鱼。如用户当前已经登录了邮箱,或bbs,同时用户又在使用另外一个,已经被你控制的站点,我们姑且叫它钓鱼网站。这个网站上面可能因为某个图片吸引你,你去点击一下,此时可能就会触发一个js的点击事件,构造一个bbs发帖的请求,去往你的bbs发帖,由于当前你的浏览器状态已经是登陆状态,所以session登陆cookie信息都会跟正常的请求一样,纯天然的利用当前的登陆状态,让用户在不知情的情况下,帮你发帖或干其他事情。
CSRF的防御一般是在Server side. 通过referer, token 或者验证码来检车用户的提交。避免全站通用的cookie,严格设置cookie的域。
http://blog.csdn.net/stpeace/article/details/53512283
CSRF defense: referer validation
Referer 两种Policy
XSS:
http://www.cnblogs.com/TankXiao/archive/2012/03/21/2337194.html
跨站脚本攻击。
stored XSS是把攻击代码存在服务器上。
FiDo U2F
中间人攻击:
http://www.vaikan.com/man-in-the-middle-attack/
IP Non-Blinding Spoofing:
比如说 sender和server建立TCP联系,三次握手执行了2次,准备sender再发一个过去第三次。这时候黑客可以从他的机器发送第三次给server。这样server就和黑客建立联系了。不过这样需要知道TCP链接中的一些信息。如果无法看到Sequence Number的话应该做不到。
IP Blinding Spoofing:
黑客向目标机器发送数据包假设Sequence Number = 0. 下一个Sequence Number就是1? 这个没看懂。。。但是现在由于都是random sequence, 做不到。
笔记:
CSRF和XSS非常容易混淆
CSRF主要意思: 让用户碰到某个Image的时候触发跑到某个网站,比如说银行的网站,然后参数我们给他设置好,比如说打款给我。 如果他刚刚进入过银行,cookie就会没过期。这样钱就打过来了。这里注意我们主要是攻击别人的网站。比如说银行的网站。
XSS 一般都是用来偷cookie,盗取信息,而不是执行动作。
DOM XSS 比如说我看到一个表格网站上有漏洞,他会print出来某paramter的值。我就发一个link给人,上面paramter= <script>....</script>
然后那个人点下去,跳到表格网站,param=JS. 然后表格返回用户browser一个DOM然后alert(这段js)
Stored XSS, 把bad JS code 放在server side. 比如说我们把JS code放在博客网站。那么人来到我们博客就会触发博客页面上的JS event。
xss和csrf的区别
xss是给用户一段js让js打开用户当前页面里的data,比如密码,cookie。盗取信息
csrf是让用户不经意间发了一段请求到某个网站,如银行,执行某个动作。执行动作。