1  跨站脚本攻击(XSS攻击)

XSS(Cross Site Scripting),跨站脚本攻击。XSS是常见的Web攻击技术之一.所谓的跨站脚本攻击指得是:恶意攻击者往Web页面里注入恶意Script代码,用户浏览这些网页时,就会执行其中的恶意代码,可对用户进行盗取cookie信息、会话劫持等各种攻击.
解决方案:

(1) 输入过滤。永远不要相信用户的输入,对用户输入的数据做一定的过滤。如输入的数据是否符合预期的格式,比如日期格式,Email格式,电话号
码格式等等。这样可以初步对XSS漏洞进行防御。上面的措施只在web端做了限制,攻击者通抓包工具如Fiddler还是可以绕过前端输入的限制,修改请求注入攻击脚本。
因此,后台服务器需要在接收到用户输入的数据后,对特殊危险字符进行过滤或者转义处理,然后再存储到数据库中。(2) 输出编码。服务器端输出到浏览器的数据,
可以使用系统的安全函数来进行编码或转义来防范XSS攻击。在PHP中,有htmlentities()和htmlspecialchars()两个函数可以满足安全要求。相应的JavaScript的编
码方式可以使用JavascriptEncode。(3) 安全编码。开发需尽量避免Web客户端文档重写、重定向或其他敏感操作,同时要避免使用客户端数据,这些操作需尽量在服
务器端使用动态页面来实现。(4) HttpOnly Cookie。预防XSS攻击窃取用户cookie最有效的防御手段。Web应用程序在设置cookie时,将其属性设为HttpOnly,
就可以避免该网页的cookie被客户端恶意JavaScript窃取,保护用户cookie信息。(5)WAF(Web Application Firewall),Web应用防火墙,主要的功能是防范诸如网页木马、
XSS以及CSRF等常见的Web漏洞攻击。由第三方公司开发,在企业环境中深受欢迎。

2 跨站请求伪造(CSRF攻击)

CSRF(Cross Site Request Forgery),即跨站请求伪造,是一种常见的Web攻击,但很多开发者对它很陌生。CSRF也是Web安全中最容易被忽略的一种 网站攻击
CSRF攻击的原理:CSRF攻击过程的受害者用户登录网站A,输入个人信息,在本地保存服务器生成的cookie。然后在A网站点击由攻击者构建一条恶意链接跳转到
B网站,然后B网站携带着的用户cookie信息去访问B网站.让A网站造成是用户自己访问的假相,从而来进行一些列的操作,常见的就是转账.
解决方案:
(1) 验证码。应用程序和用户进行交互过程中,特别是账户交易这种核心步骤,强制用户输入验证码,才能完成最终请求。在通常情况下,验证码够很好地遏制
CSRF攻击。但增加验证码降低了用户的体验,网站不能给所有的操作都加上验证码。所以只能将验证码作为一种辅助手段,在关键业务点设置验证码。(2) Referer Check。
HTTP Referer是header的一部分,当浏览器向web服务器发送请求时,一般会带上Referer信息告诉服务器是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处
理。可以通过检查请求的来源来防御CSRF攻击。正常请求的referer具有一定规律,如在提交表单的referer必定是在该页面发起的请求。所以通过检查http包头referer的值
是不是这个页面,来判断是不是CSRF攻击。但在某些情况下如从https跳转到http,浏览器处于安全考虑,不会发送referer,服务器就无法进行check了。若与该网站同域的
其他网站有XSS漏洞,那么攻击者可以在其他网站注入恶意脚本,受害者进入了此类同域的网址,也会遭受攻击。出于以上原因,无法完全依赖Referer Check作为防御CSRF
的主要手段。但是可以通过Referer Check来监控CSRF攻击的发生。(3) Anti CSRF Token。目前比较完善的解决方案是加入Anti-CSRF-Token,即发送请求时在HTTP 请
求中以参数的形式加入一个随机产生的token,并在服务器建立一个拦截器来验证这个token。服务器读取浏览器当前域cookie中这个token值,会进行校验该请求当中的token
和cookie当中的token值是否都存在且相等,才认为这是合法的请求。否则认为这次请求是违法的,拒绝该次服务。这种方法相比Referer检查要安全很多,token可以在用户
登陆后产生并放于session或cookie中,然后在每次请求时服务器把token从session或cookie中拿出,与本次请求中的token 进行比对。由于token的存在,攻击者无法再构造
出一个完整的URL实施CSRF攻击。但在处理多个页面共存问题时,当某个页面消耗掉token后,其他页面的表单保存的还是被消耗掉的那个token,其他页面的表单提交时会出
现token错误。
完成 CSRF 需要两个步骤:

1. 登陆受信任的网站 A,在本地生成 COOKIE

2. 在不登出 A 的情况下,或者本地 COOKIE 没有过期的情况下,访问危险网站 B。

3 SQL注入攻击

SQL注入(SQL Injection),应用程序在向后台数据库传递SQL(Structured Query Language,结构化查询语言)时,攻击者将SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.
解决方案:
(1) 防止系统敏感信息泄露。设置php.ini选项display_errors=off,防止php脚本出错之后,在web页面输出敏感信息错误,让攻击者有机可乘。(2) 数据转义。设置php.ini选项magic_quotes_gpc=on,它会将提交的变量中所有的’(单引号),”(双引号),\(反斜杠),空白字符等都在前面自动加上\。或者采用mysql_real_escape()函数或addslashes()函数进行输入参数的转义。(3) 增加黑名单或者白名单验证。白名单验证一般指,检查用户输入是否是符合预期的类型、长度、数值范围或者其他格式标准。黑名单验证是指,若在用户输入中,包含明显的恶意内容则拒绝该条用户请求。在使用白名单验证时,一般会配合黑名单验证。 

4 文件上传漏洞

上传漏洞在DVBBS6.0时代被黑客们利用的最为猖獗,利用上传漏洞可以直接得到WEBSHELL,危害等级超级高,现在的入侵中上传漏洞也是常见的漏洞。该漏洞允许用户上传任意文件可能会让攻击者注入危险内容或恶意代码,并在服务器上运行。 文件上传漏洞的原理:由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过 Web 访问的目录上传任意PHP文件,并能够将这些文件传递给 PHP 解释器,就可以在远程服务器上执行任意PHP脚本。 
解决方案: 
(1)检查服务器是否判断了上传文件类型及后缀。 (2) 定义上传文件类型白名单,即只允许白名单里面类型的文件上传。 (3) 文件上传目录禁止执行脚本解析,避免攻击者进行二次攻击。  Info漏洞 Info漏洞就是CGI把输入的参数原样输出到页面,攻击者通过修改输入参数而达到欺骗用户的目的。

转载于:https://www.cnblogs.com/liangshuang/p/8479111.html

web大前端开发中一些常见的安全性问题相关推荐

  1. 大前端开发中的“树”

    本文介绍 Web.Android.iOS.Flutter 这些前终端平台下,与 "树" 及视图系统有关的技术话题,并尝试分析它们之间的异同点:方便从事大前端开发的同学对各平台的技术 ...

  2. 参数构造错误 微信_快速掌握前端开发中的常见错误

    前言 今天我们来了解一下现在浏览器中支持的一些Error对象,如果你还在经常在捕获到错误的时候不知道该用哪个类型,总是习惯于去throw new Error('xx')的话,相信本文会帮你对error ...

  3. “前端开发中的三种定时任务及其应用“

    前端定时任务是指在一定时间间隔内,自动执行指定的操作或函数.在前端开发中,定时任务被广泛应用于诸如数据更新.定时提醒.定时刷新页面等方面.在本文中,我们将介绍前端中常见的三种定时任务,分别是 setT ...

  4. 初学者Web介绍一些前端开发中的基本概念用到的技术

    Web开发是比较费神的,需要掌握很多很多的东西,特别是从事前端开发的朋友,需要通十行才行.今天,本文向初学者介绍一些Web开发中的基本概念和用到的技术,从A到Z总共26项,每项对应一个概念或者技术. ...

  5. 表单html遇到的问题及处理,Web前端开发中常见问题及解决方案

    Web前端开发中常见问题及解决方案 时间:2017-04-24     来源:web前端开发小赢家 作为一名web前端开发工程师,我们在工作时免不了会遇到各种各样的问题.因为web前端开发相对于Jav ...

  6. web前端开发中需要掌握的技术:

    web前端开发中需要掌握的技术: 1.学习HTML,这是最简单,最基本的是要掌握div,formtable.Ulli.P.跨度.字体这些标签,这些都是最常用的,尤其是DIV和表格,DIV,表也可以用于 ...

  7. Web前端开发中的表单练习

    在web前端开发中,练习table的使用是非常重要的,通过表单的练习可以很好的帮助我们掌握表单的使用方式. 效果如图所示: 代码如下: css采用了外部样式 HTML部分: <!DOCTYPE ...

  8. 前端开发中的地理定位问题小总结

    项目中遇到地理定位的问题,没遇过不知道,遇过就发现这是个比较坑的问题.这个问题其实困扰了我挺久的,还不如一次性了解清楚.所以本文进行了一些小总结,先简单总结我看过的关于定位技术的资料,然后介绍前端开发 ...

  9. 前端开发中常用设计模式-总结篇

    本文是向大家介绍前端开发中常用的设计模式,它使我们编写的代码更容易被复用,也更容易被人理解,并且保证代码的稳定可靠性. 1.什么是设计模式 通俗来讲,就是日常使用设计的一种惯性思维. 因为对应的这种思 ...

  10. 前端开发中常用图片格式

    前端开发中常用图片格式 在我们的日常开发中.必不可少会使用很多种图片. 我们需要根据业务场景来选择所使用的图片类型. 这里我整理了一些常用图片类型.他们的优缺点以及建议的使用场景. 如何在计算机中显示 ...

最新文章

  1. iPhone销量低迷,或导致苹果放弃自动驾驶项目?
  2. MongoDB:GridFS删除方法删除存储桶中的所有文件
  3. Asterisk学习进阶-3
  4. WPF01(xaml)
  5. cdn是什么和作用有些
  6. ASP.NET核心之路微服务第01部分:构建视图
  7. 最新PHP精品在线音乐分享网站源码/UI很好看
  8. 盗窟手机小我私人撤军华强北:市场一年不如一年
  9. 等保之——等级保护2.0要求及所需设备清单
  10. scheme 语言概述
  11. Windows安全加固简介
  12. 算术右移 java_Java 中 算术右移和逻辑右移有什么区别?
  13. 【论文研读】Similarity of Neural Network Representations Revisited (ICML2019)
  14. 开学季哪些数码产品值得一看?开学季推荐五款值得入手的好物
  15. Python多线程多进程应用场景
  16. 校招群面及专业面技巧总结(适用产品等非技术岗)
  17. 堡垒前线7月30日服务器维护,堡垒前线7月24日停服维护公告 全新功能初心岛正式上线...
  18. 办公自动化:输入关键字,查找Excel里的内容_xing2516_新浪博客
  19. VSTO Office二次开发键盘鼠标钩子使用整理
  20. 2048-经典单机益智游戏

热门文章

  1. 和方舟rust一样的手游_2020年最令人期待的端改手游盘点,《方舟:生存进化》名列前茅...
  2. wxpython和tkinter哪个好_为什么很多Python开发者写GUI不用Tkinter,而要选择PyQt和wxPython或其他?...
  3. python动态爱心曲线_使用matplotlib动态刷新指定曲线实例
  4. binder.java 565_Android跨进程抛异常的原理的实现
  5. Nginx源码分析 - Event事件篇 - Event模块的进程初始化(18)
  6. 一文读懂python数据分析_一文读懂聚类算法
  7. vue 第十天 (组件的基本使用)
  8. java 重写equals的要点_浅谈java 重写equals方法的种种坑
  9. 5.2自动扫描及装配数据
  10. 【渝粤题库】陕西师范大学300006 史学概论