WEB前端常见受攻击方式及解决办法总结

WEB前端常见受攻击方式及解决办法总结
最新回答
傲似公主

2023-11-13 02:51:44

WEB前端常见受攻击方式及解决办法总结

一、SQL注入

  • 攻击方式:SQL注入是通过在web表单提交或输入域名或页面请求的查询字符串中插入SQL命令,欺骗服务器执行恶意的SQL命令。攻击者可以利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行,从而获取或篡改数据库中的数据。

  • 解决办法

    校验用户输入:对用户的输入进行校验,可以通过正则表达式或限制长度,对单引号和双引号进行转换等。

    使用参数化查询:永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取。

    限制数据库连接权限:永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

    加密敏感信息:不要把机密信息直接存放,加密或hash掉密码和敏感的信息。

    自定义错误信息:应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装。

    使用检测工具:采用SQL注入检测工具如jsky、MDCSOFT SCAN等,以及MDCSOFT-IPS来防御SQL注入、XSS攻击等。

二、跨站脚本攻击(XSS)

  • 攻击方式:攻击者在网页上发布包含攻击性代码的数据,当浏览者看到此网页时,特定的脚本就会以浏览者用户的身份和权限来执行。通过XSS可以修改用户数据、窃取用户信息,以及造成其它类型的攻击,如CSRF攻击。

  • 解决办法

    输出转义:确保输出到HTML页面的数据以HTML的方式被转义。

    错误页面处理:避免出错页面直接把URL原样输出,防止攻击者在URL后面加上攻击代码。

三、跨站请求伪造攻击(CSRF)

  • 攻击方式:攻击者通过各种方法伪造一个请求,模仿用户提交表单的行为,从而达到修改用户的数据或执行特定任务的目的。CSRF攻击常常和XSS攻击配合起来做,但也可以通过诱使用户点击一个包含攻击的链接来实现。

  • 解决办法

    采用POST请求:增加攻击的难度,因为POST请求相对较难,攻击者往往需要借助JavaScript才能实现。

    请求认证:在会话中增加token,确保看到信息和提交信息的是同一个人。

四、Http Heads攻击

  • 攻击方式:攻击者利用HTTP协议在Response header和content之间的空行(两组CRLF字符)注入非法字符,从而执行隐藏在URL中的JavaScript或设置额外的cookie等。

  • 解决办法

    过滤response headers:除去header中出现的非法字符,尤其是CRLF。

    限制request headers大小:检查cookie的大小,限制新cookie的总大小,减少因header过大而产生的拒绝访问攻击。

五、Cookie攻击

  • 攻击方式:攻击者利用JavaScript访问当前网站的cookie,从而获取关键信息。如果网站仅依赖cookie来验证用户身份,那么攻击者就可以假冒用户的身份。

  • 解决办法

    使用HttpOnly标记:在关键cookie上打上HttpOnly标记,使其无法通过JavaScript来取得。

六、重定向攻击

  • 攻击方式:钓鱼攻击者通常会发送给受害者一个合法链接,当链接被点击时,用户被导向一个似是而非的非法网站,从而达到骗取用户信任、窃取用户资料的目的。

  • 解决办法

    审核重定向操作:对所有的重定向操作进行审核,以避免重定向到一个危险的地方。

    使用白名单:将合法的要重定向的URL加到白名单中,非白名单上的域名重定向时拒之。

    重定向token:在合法的URL上加上token,重定向时进行验证。

七、上传文件攻击

  • 攻击方式

    文件名攻击:上传的文件采用上传之前的文件名,可能造成文件名乱码问题或文件名包含脚本。

    文件后缀攻击:上传的文件后缀可能是exe可执行程序、js脚本等文件,这些程序可能被执行于受害者的客户端或服务器上。

    文件内容攻击:如IE6会根据文件内容来识别文件的类型,并根据所识别的类型来显示或执行文件,从而执行隐藏在文件内容中的脚本。

  • 解决办法

    过滤文件名:避免使用上传之前的文件名,防止乱码和脚本攻击。

    过滤文件后缀:排除那些不被许可的文件名后缀。

    扫描文件内容:扫描文件内容以识别并排除潜在的攻击脚本。