什么是XSS攻击?什么是CSRF攻击?什么是sql注入?如何防范

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/suandfei/article/details/102669870

什么是CSRF攻击?

让我来谈谈这个词:CSRF(Cross-site request forgery)跨站请求伪造,这个词还是不了解,不用担心,我们先讲一个故事,一个真实的故事。那是在2009年,一名黑客利用CSRF通过Gmail的成功攻击成功窃取了好莱坞明星Vanessa Hudgens的邮箱。攻击很简单,她给她发了一封电子邮件,内容是图片,但这张照片有点特别。它是这样写的:当用户点击邮件加载图片时,他实际上访问了这样的链接:https://mail.google.com/mail?ui = 2&fw = true&fwe = my @ email.com,这个链接的功能是Gmail设置邮件转发,因此目标邮箱中的所有邮件都被转发到黑客指定的邮箱。有很多这样的例子。只需构造正确的Get链接,让浏览器发送Get请求。由于用户已经登录,因此它将携带正确的cookie并直接访问链接以实现相关功能。

在了解了原理之后,如何破解黑客的攻击?解决方案是向表单添加字段标记。黑客无法猜出已经改变的令牌,所以即使你添加一个UUID令牌,将它保存到服务器会话,黑客也不可能猜出随机令牌,就无法构造出能实现功能的链接了。

什么是XSS攻击?

首先,这个词实际上是CSS(Cross Site Scripting),但它与CSS同名。所以名字是XSS。跨站点脚本攻击类似于上面提到的CSRF。实际上,原则是将一段JavaScript代码注入网页。然后当其他用户访问该页面时,他们将运行黑客编写的JS代码来实现一些帐户控制。经典故事是:2011年6月28日,新浪微博被XSS攻击,大量用户自动转发微博、私信。自动关注用户,大量用户被莫名其妙地控制。因为可以使用JS代码代替用户单击按钮发送请求,所以损坏非常大。反射XSS攻击:搜索模块越常见,例如:https://www.lucklnk.com/Search?wd =攻击,当搜索链接正常时,应将wd参数传递给搜索词,并且然后在页面上显示当前搜索词,您可以使用此门户传递一些不同的数据,例如,我将其更改为:https://www.lucklnk.com/Search?wd =,页面将是使用JS代码注入类似地,也可以在没有用户感知的情况下在站点中插入其他站点的js文件,从而实现诸如控制用户和窃取cookie之类的操作,但是这样的链接必须由用户点击,并且将不要让所有用户都被招募。

存储XSS攻击:最后一次反射XSS攻击只能攻击点击该链接的某些用户。存储类型XSS可能会对所有用户带来攻击。经典的是用户签名栏。这个地方允许用户自定义。内容将存储在数据库中。当其他用户浏览他时,它将从数据库加载。如果恶意用户在其签名栏中注入了js参考,那么浏览他的所有人都将被Js控制,存储类型XSS的危险可能危及整个站的用户,非常危险。,例如:关键字判断当有一个关键字如脚本、src来代替损坏;返回内容时进行转码,转码尖括号采用Unicode编码格式,

什么是SQL注入攻击?

SQL注入是一个非常古老的漏洞,现在并不常见。经验不足的人可以避免被SQL注入的风险。让我们首先看一个经典案例:用户经常在登录时写字。

$sql = “select * from user where username = '” + userName “’’ and passwd = '” +userPassword + “’”;

在正常情况下会说明:select * from user where username =‘admin’ and passwd =‘mima’,但不幸的是黑客也会编写SQL语句,黑客在输入时输入用户名和密码:user named admin’ or 1 = 1 - ,密码为空,此时拼接出的SQL是:从用户中选择*,其中username =‘admin’ or 1 = 1 - ’ and passwd =’’

你看到了什么? 1 = 1总是成立,后者 - 将注释掉以下SQL,admin用户将成功登录,原理就是这么简单。

在了解了原理之后,如何破解黑客的注入攻击?最常见的是在业务逻辑层中执行关键字检查。如果包含SQL的关键字,例如 *、or、select、delete等等关键字就进行替换;最有效的仍然是使用SQL变量进行查询,避免使用字符串来拼接SQL字符串。

猜你喜欢

转载自blog.csdn.net/suandfei/article/details/102669870