3

web安全基础知识一

 2 years ago
source link: https://zofun.github.io/2020/05/22/web%E5%AE%89%E5%85%A8%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%E4%B8%80/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

常见网站应用攻击方式

XSS攻击

XSS攻击即跨站点脚本攻击(cross site script),指黑客通过篡改网页,注入恶意HTML脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。
常见的XSS攻击的类型有两种:

  • 反射型:攻击者诱使用户点击一个嵌入恶意脚本的连接,达到攻击的目的。
  • 持久型:黑客提交包含恶意脚本的请求,保存在被攻击的web站点的数据库中,用户浏览网页时,恶意脚本就被包含在正常页面中,达到攻击的目的。

消毒
XSS攻击者一般都是通过在请求中嵌入恶意脚本达到攻击的目的,这些脚本一般用户输入中不使用的,如果进行过滤和消毒处理,即对某些html危险字符转义,如”>””<”等,就可以防范大部分攻击。
HttpOnly
即浏览器禁止页面JavaScript访问带有HttpOnly属性的Cookie。该方法可以防止XSS攻击者窃取Cookie,对于存放敏感信息的Cookie,如用户认证信息等,可通过对该Cookie添加HttpOnly属性,避免被攻击脚本窃取。

注入攻击主要有两种形式,SQL注入攻击和OS注入攻击。
SQL注入攻击的原理就是攻击者在HTTP请求中注入恶意SQL命令,服务器用请求参数构造数据库SQL命令时,恶意SQL被一起构造,并在数据库中执行。SQL注入攻击需要用户对数据库得结构有所了解才能进行,攻击者获取数据库表结构的手段有:网站开源的代码,错误回显,盲注。

SQL注入的防范方法

消毒
和防止XSS攻击一样,请求参数消毒是一种比较简单粗暴又有效的手段。通过正则匹配,过滤请求数据中可能注入的SQL。
参数绑定
使用预编译手段,绑定参数是最好的防SQL注入方法。目前很多数据层很多框架都提供SQL预编译和参数绑定。

CSRF攻击

CSRF(cross site request frogery,跨站点请求伪造),攻击者通过跨站请求,以合法用户的身份进行非常操作,如转账交易、发表评论等。CSRF的主要手段是利用跨站请求,在用户不支持的情况下,以用户的身份伪造请求。核心是利用了浏览器Cookie或服务器Session策略,盗取用户身份。
YOW7CT.png

CSRF的防御手段

CSRF的防范手段主要是识别请求者身份。
表单Token
CSRF是一个伪造用户请求的操作,所以需要构造用户请求的所有参数才可以。表单Token通过在请求参数中增加随机数的办法来阻止攻击者获得所有请求参数。服务器检查请求参数中Token的值是否存在并且正确请求提交者是否合法。
验证码
在请求提交时,需要用户输入验证码,以避免在用户不知情的情况下被攻击者伪造请求。
Referer check
HTTP请求头的Referer域中记录着请求来源,可通过检查请求来源,验证其是否合法。

其它攻击和漏洞

Error Code

错误回显,许多web服务器默认是打开异常信息输出的,即服务器端未处理的异常堆栈信息回直接输出到客户端浏览器,这种方式虽然对程序调试和错误报告有好处,但同时也给黑客造成可乘之机。

HTML注释

未调式程序或其它不恰当的原因,有时程序开发人员会在PHP,JSP等服务器页面程序中使用HTML注释语法进行程序注释,这些HTML注释信息会显示在客户端浏览器给黑客攻击便利。

一般网站都会有文件上传功能,设置头像、分享视频、上传附件等。如果上传的是可执行的程序,并通过该程序获得服务器端命令执行能力,那么攻击者几乎可以在服务器上为所欲为。最有效的防范手段是设置上传文件白名单,只允许上传可靠的文件类型。此外还可以修改文件名、使用专门的存储手段等,保护服务器避免受上传文件攻击。

攻击者在请求的URL中使用相对路径,遍历系统未开放的目录和文件。防御防范主要是讲JS、CSS等资源文件部署在独立的服务器,使用独立域名,其它文件不使用静态URL范围,到你太参数不包含文件路径信息。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK