一个网站建立起来之后,如果不注意安全问题,就很容易被攻击。下面讨论几个漏洞和防御方法。
I .跨站脚本攻击(XSS)
跨站脚本(XSS)是攻击网站最常见和最基本的方法。攻击者在网页上发布包含攻击性代码的数据。当浏览器看到这个网页时,会以用户的身份和权限执行一个特定的脚本。XSS可以轻松修改用户数据,窃取用户信息,并引发其他类型的攻击,如CSRF攻击。
辩护:
1.对于敏感的cookie信息,请使用HttpOnly,以便在文档对象中找不到cookie。
2.对用户输入的信息进行转义。
二。跨站点请求伪造攻击(CSRF)
跨站点请求伪造(CSRF)是另一种常见的攻击。攻击者通过各种方法伪造请求,模仿用户提交表单的行为,从而修改用户的数据或执行特定的任务。为了假冒用户的身份,CSRF攻击通常与XSS攻击结合使用,但也可以通过其他方式来实现,例如诱导用户单击包含攻击的链接。
辩护:
1.使用POST请求增加攻击难度。用户可以通过单击链接来启动获取类型请求。然而,POST请求相对困难,攻击者通常需要javascript来实现它们。
2.对请求进行身份验证,确保请求确实是由用户自己填写和提交的,而不是由第三方伪造的。具体来说,您可以在对话中添加token,以确保同一个人看到并提交信息。
三。Http Heads攻击
任何用浏览器浏览任何网站的人,不管你的网站采用什么技术和框架,都使用HTTP协议。HTTP协议在响应头和内容之间,有空行,也就是两组CRLF(0x0D 0A)字符。这空行标志着标题的结束和内容的开始。“聪明的”攻击者可以利用这一点。只要攻击者有办法将任意字符“注入”到报头中,这种攻击就可能发生。
以login为例:有这样一个网址:
http://localhost/login?page = http % 3A % 2F % 2 flocalhost % 2 findex
成功登录后,您需要重定向回由page参数指定的页面。以下是重定向发生时的响应头。
HTTP/1.1 302临时移动
日期:2010年8月17日星期二20:00:29 GMT
服务器:Apache mod _ fc GID/2 . 3 . 5 mod _ auth _ pass through/2.1 mod _ bw limited/1.4 front page/5 . 0 . 2 . 2635
位置:http://localhost/index
如果您将URL修改为如下所示:
http://localhost/login?page = http % 3A % 2F % 2f localhost % 2f check out % 0D % 0A % 0A % 3c script % 3e alert % 28% 27 hello % 27% 29% 3C % 2f script % 3E
那么重定向发生时的响应将如下所示:
HTTP/1.1 302临时移动
日期:2010年8月17日星期二20:00:29 GMT
服务器:Apache mod _ fc GID/2 . 3 . 5 mod _ auth _ pass through/2.1 mod _ bw limited/1.4 front page/5 . 0 . 2 . 2635
位置:http://localhost/check out <CRLF >
& ltCRLF >
& lt脚本& gtalert(‘你好’)& lt/script >
该页面可能会意外执行隐藏在URL中的javascript。类似的情况不仅发生在Location头中,也发生在其他头中,例如Set-Cookie头。如果这次攻击成功,可以做很多事情,比如执行脚本,设置额外的cookies(
辩护:
过滤所有响应标头,删除标头中的非法字符,尤其是CRLF。
服务器通常会限制请求头的大小。例如,Apache服务器对请求头的默认限制是8K。如果超过8K,Aapche服务器将返回400错误请求响应:
大多数情况下,8K已经足够大了。假设应用程序将用户输入的内容保存在cookie中,它可能会超过8K。如果攻击者向受害者发送超过8k的头链接,将被服务器拒绝访问。解决的办法是检查cookie的大小,限制新cookie的总大小写,减少因头文件过多而导致的拒绝访问攻击。
四。认证和对话
黑客在浏览器中禁用JS,防止客户端检查,从而执行一些操作。
辩护:
1.隐藏敏感信息。
2.加密敏感信息。
3.会话定期过期。
动词 (verb的缩写)重定向攻击
常见的攻击手段是“钓鱼”。网络钓鱼攻击者通常会向受害者发送一个合法链接。点击链接,将用户导向一个似是而非的非法网站,从而达到骗取用户信任,窃取用户数据的目的。为了防止这种行为,我们必须审核所有重定向操作,以避免重定向到危险的地方。
辩护:
添加要重定向到白名单的合法网址,重定向时拒绝不在白名单上的域名。第二种解决方案是重定向令牌,将令牌添加到合法的url,并在重定向时验证它。
不及物动词许可和访问控制
您可以通过修改URL参数来访问其他人的页面。例如,黑客可以使用以下链接访问自己在某个商城中的订单链接。
https://***.***.com/nor***l/item.action?orderid=51338221***4
这时候如果网站没有相关的权限验证,那么他也可以通过下面的链接访问别人的订单。
https://***.***.com/nor***l/item.action?orderid=其他id
这样会造成商场其他人的隐私被泄露。
辩护:
1.添加权限系统。访问时,可以添加相应的检查。
七。不安全的加密存储
辩护:
1.加密和存储敏感信息
2.不需要md5加密。
八。SQL注入
最常见的攻击方法,即所谓的SQL注入,是通过在Web表单中插入SQL命令或输入域名或页面请求的查询字符串,来欺骗服务器执行恶意的SQL命令。比如之前很多影视网站泄露的VIP会员密码,大部分都是通过web表单提交查询字符暴露的,这类表单特别容易受到SQL注入攻击。
辩护:
1.表单过滤,验证表单提交的合法性,转义一些特殊字符。
2.最小化数据库权限。
3.查询语句使用数据库提供的参数化查询接口,不直接拼接SQL。
九。传输层是未加密的
辩护:
1.使用安全的https版本。
2.使用https传输敏感信息。
3.非敏感信息通过http传输。
以上就是《常见Web攻击与防御总结》的全部内容。如有需要,请登陆GDCA数码时代官网咨询客服。
本文来自热恋少女投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/604198.html