跨站脚本(cross site script):简称XSS:指恶意攻击者利用网站没有对用户提交的数据进行转义处理或过滤不足的缺点,进而添加一些代码,嵌入到web页面中。使别的用户访问都会执行相应的嵌入代码。从而盗取用户资料,利用用户身份进行某种动作或对访问者进行病毒侵害的一种攻击方式。
XSS攻击的危害:盗取各类用户账户、控制企业数据、盗窃企业具有商业价值的材料、非法转账、强制发送电子邮件、网站挂马、控制受害者机器向其他网站发动攻击等。
主要原因:过于信任客户端提供的数据!
解决办法:不信任任何客户端提交的数据,只要客户端提交的数据就先进行相应的过滤处理方可进行下一步操作。
攻击方式:客户端提交的数据是应用所需要的,但是恶意攻击者利用网站对客户端提交数据的信任,在数据中插入一些符号以及javascript代码,那么这些数据成为应用代码的一部分了。非常危险!
跨站请求伪造(cross site request forgery):简称CSRF:是一种夹持用户在已经登陆的web应用程序上执行非本意的操作的攻击方式。
相比于XSS,CSRF是利用了系统对页面浏览器的信任;XSS则利用了系统对用户的信任。
CSRF攻击原理:
1:客户端通过账户密码登陆访问网站A;
2:网站A验证客户端的账号密码,成功则生成一个sessionID,并返回给客户端存储在浏览器中;
3:该客户端tab了一个新页面访问网站B
4:网站B自动触发要求该客户端访问网站A(即在网站B有链接指向网站A);
5:客户端通过网站B的链接访问网站A(此时是携带有合法的sessionID进行访问网站A);
6:此时网站A只需要检验sessionID是否合法,合法则执行相应的操作!
CSRF攻击是有条件的:
1:客户端必须访问过这个网站并生成cookie凭证存储在浏览器中;
2:该cookie没有清除,客户端又tab一个页面进行访问别的网站。
XSS学习链接: https://www.cnblogs.com/applelife/p/10477583.html
CSRF学习链接: https://www.cnblogs.com/applelife/p/10477600.html