个人理解的XSS与CSRF的区别
XSS:
服务器对客户端的输入检测不严格,导致客户端输入的恶意JAVASCRIPT代码被植入到HTML代码中,这些JAVASCRIPT代码得以执行,实现一些特殊的目的,这就是XSS.
CSRF:
服务器没有验证请求的有效性(也就是说没有验证请求是否是由用户手动发起的,因为我们利用代码也可以发起请求),而只是进行了一些权限方面的验证后,就直接将请求进行了处理,这就造成了CSRF漏洞。我们可以利用代码,在用户完全不知情的情况下发起一个请求,进行某些操作。
对于CSRF的防范,可以在请求的时候添加TOKEN或者验证码,在验证请求的时候检查TOKEN。 如果TOKEN不存在或者不正确+,则视此请求为无效请求,直接忽略掉。
虽然XSS与CSRF在利用方式上面基本上是一样的。但是它们的概念是完全不相同的。 绝大多数网站都是存在CSRF漏洞的,因为他们都过于依赖系统的权限验证系统了。
如果一个程序同时存在XSS与CSRF漏洞,那么我们就可以间接地操作后台。 只要将存在XSS代码的页面想办法让管理员查看+,XSS里面的CSRF代码就会执行,来访问后台的任何页面,进行任意的操作。 比如经典的输入XSS代码让管理员访问数据库备份页面进行备份操作,这就是一次XSS与CSRF的综合利用。
对于只存在CSRF漏洞的网站+,我们就需要在别的服务器上面上传一个HTML,这个HTML里面就是利用CSRF进行操作的代码, 然后诱骗管理员访问这个HTML。