常见的web安全问题有哪些

(1)SQL注入

SQL注入是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。SQL危害到数据库的信息,管理员的账号密码、用户的敏感信息等;可以获取服务器权限;植入攻击脚本;读取服务器敏感文件。

常见的一个例子,登陆页面输入用户名admin' --,密码随意输入,这样子后台的SQL语句会由原来的SELECT * FROM user WHERE username='admin' AND psw='password';就会变为SELECT * FROM user WHERE username='admin' --' AND psw='xxxx';,这就相当于密码部分被注释了,成了万能不需要密码登陆了。

SQL注入的过程包括:

  • 获取用户请求参数
  • 拼接到代码当中
  • SQL语句按照构造参数的语义执行成功

SQL注入的必备条件:

  • 可以控制输入的数据
  • 服务器要执行的代码拼接了控制的数据

SQL注入防御:

  • 严格限制Web应用的数据库操作权限,如权限仅够满足工作即可
  • 后端代码检查输入的数据是否安全合规,如正则匹配
  • 对入库的特殊字符进行转义处理或者编码转换
  • 所有的查询语句建议是同数据库提供的参数化查询接口

(2)CSRF

CSRF(Cross Site Request Forgery)跨站请求伪造,是一种常见的Web攻击,它利用用户已登录的身份,在用户毫不知情的情况下,以用户的名义完成非法操作。

完成CSRF攻击必须具备的三个条件:用户已经登录了站点A,并在本地记录了cookie;在用户没有登出站点A的情况下(也就是cookie生效的情况下),访问了恶意攻击者提供的引诱危险站点B,B站点发出一个请求站点的一个request请求;站点A没有做任何CSRF防御。

防范CSRF攻击可以遵循的规则:

  • GET请求不对数据进行修改;
  • 不让第三方网站访问用户Cookie;
  • 阻止第三方网站请求接口;
    -请求附带验证信息,如验证码或者Token;

防御CSRF:

  • Same Site:对Cookie设置Same Site属性,不随着跨域请求发送;
  • Referer Check:通过检查HTTP包头Referer的值是不是这个页面的,来判断是不是CSRF攻击;
  • Anti CSRF Token:比较完善的解决方案,即在发送请求时在HTTP请求总以参数的形式加入一个随机产生的Token,并在服务器建立一个拦截器来验证这个Token,服务器读取浏览器当前域cookie中这个token值,进行校验。
  • 验证码:应用程序和用户交互过程中,特别是账户交易这种核心步骤,强制用户输入验证码,才能完成最终的请求,这样能够很好的遏制CSRF攻击。

(3)XSS

XSS(Cross Site Scripting)跨站脚本攻击,因为缩写与CSS重名,所以叫XSS,是指通过存在安全漏洞的Web网站注册用户的浏览器内运行的HTML标签或JavaSript进行的一种攻击。XSS的原理是恶意攻击者往Web页面里插入恶意可插入恶意可执行网页脚本代码,当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行,从而可以达到攻击者盗取用户信息或者其他侵犯用户安全隐私的目的。

利用虚假输入表单骗取用户个人信息;利用脚本切取用户的Cookie值,被害者在不知情的情况下,帮助攻击者发送恶意请求;显示伪造的文章或图片。

其中XSS攻击可分为持久型(存储型XSS)和非持久型(反射型XSS),非持久型一般都是通过别人发送带有恶意脚本代码参数的URL,当URL地址被打开时,特有的恶意代码参数被HTML解析、执行;持久型XSS漏洞一般存在于Form表单等交换功能,如文章留言、提交文本信息等。

防御XSS:

  • CSP:本质上就是建立白名单,配置规则告诉浏览器那些资源可以加载和执行,如设置HTTP header中的Content Security Policy: default-src 'self'限制加载本站资源或设置meta标签的方式;
  • 转义字符:用户的输入永远不可信任,对引号、尖括号、斜杠、进行转义;
  • HttpOnly Cookie:预防XSS攻击窃取用户cookie最有效的防御手段,Web应用程序在设置cookie时,将其属性设为HttpOnly,就可以避免该网页的cookie被客户端javaScript窃取,保护用户cookie信息。

(4)点击劫持

点击劫持是一种视觉欺骗的攻击手段。攻击者将需要攻击的网站通过 iframe 嵌套的方式嵌入自己的网页中,并将 iframe 设置为透明,在页面中透出一个按钮诱导用户点击。

点击劫持的原理:用户在登陆A网站的系统后,,被攻击者诱惑打开第三方网站,而第三方网站通过iframe引入了A网站的页面内容,用户在第三方网站中点击某个存在点击劫持的按钮,实际上就是点击了A网站的按钮。

点击劫持的特点:隐蔽性较高,骗取用户操作;“UI-覆盖攻击”;利用iframe或者其它标签的属性。

防御点击劫持:

  • X-FRAME-OPTIONS:DENY表示页面不允许通过iframe的方式展示;SAMEORIGIN表示页面可以在相同域名下通过iframe的方式展示;ALLOW-FROM表示页面可以在指定来源的iframe中展示。
  • JavaScript防御:当通过ifrmae的方式加载页面时,攻击者的网页直接不显示所有内容了。

(5)URL跳转漏洞

URL跳转漏洞是指借助未验证的URL跳转,将应用程序引导到不安全的第三方区域,从而导致的安全问题。

URL跳转漏洞的原理:黑客利用URL跳转漏洞来诱导安全意识低的用户点击,导致用户信息泄露或者资金流失。其原理是黑客构建恶意链接,发送到QQ群、微信群或者贴吧/论坛中,安全意识低的用户点击后,经过服务器或浏览器解析后后,跳转到恶意的网站中,简单来说就是钓鱼网站。

实现方式:Header跳转、JavaScript跳转、meta标签跳转。

防御URL跳转漏洞:

  • Referer的限制
  • 加入有效性验证Token

(6)OS命令攻击注入

OS命令注入和SQL注入差不多,只不过SQL注入是针对数据库的,而OS命令是针对操作系统的。OS命令注入攻击指通过Web应用,执行非法的操作系统命令达到攻击的目的。主要在能调用shell函数的地方就存在被攻击的风险。OS命令注入攻击可以向shell发送命令,让操作系统的命令行启动程序、安装程序等。

rm -rf很可怕!!!

防御OS命令攻击注入:

  • 后端对前端提交的内容进行规则限定,如正则表达式
  • 点调用系统命令前对所有传入参数进行命令行参数转义过滤
  • 不要直接拼接命令语句,最好借助一些工作做拼接、转义处理,如Node.js的shell-escape npm

常见的web安全问题有哪些相关推荐

  1. 常见六大Web安全问题

    一. XSS Cross-Site Scripting(跨站脚本攻击)简称 XSS(因为缩写和 CSS重叠,所以只能叫 XSS),是一种代码注入攻击. 攻击者通过在目标网站上注入恶意脚本,使之在用户的 ...

  2. web开发常见的几大安全问题

    一.SQL注入 SQL注入是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击.SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求 ...

  3. url存在宽字节跨站漏洞_5分钟速览丨常见的Web安全漏洞及测试方法

    中秋小长假 "余额"就剩半天了 尽管心里有太多不舍 也要调整自己 毕竟假期都是短暂的 工作才是职场人生的常态 为了尽快消除"假日综合症" e小安贴心送上小文一篇 ...

  4. 常见六大 Web 安全攻防解析 | 技术头条

    作者 | 浪里行舟 责编 | 胡巍巍 在互联网时代,数据安全与个人隐私受到了前所未有的挑战,各种新奇的攻击技术层出不穷.如何才能更好地保护我们的数据?本文主要侧重于分析几种常见的攻击的类型以及防御的方 ...

  5. 常见六大 Web 安全攻防解析

    前言 在互联网时代,数据安全与个人隐私受到了前所未有的挑战,各种新奇的攻击技术层出不穷.如何才能更好地保护我们的数据?本文主要侧重于分析几种常见的攻击的类型以及防御的方法. 一.XSS XSS (Cr ...

  6. 常见六大Web安全攻防解析

    前言 在互联网时代,数据安全与个人隐私受到了前所未有的挑战,各种新奇的攻击技术层出不穷.如何才能更好地保护我们的数据?本文主要侧重于分析几种常见的攻击的类型以及防御的方法. 想优质原创文章请猛戳Git ...

  7. 常见的web攻击有哪些?如何防御?

    web攻击是什么 Web攻击(WebAttack)是针对用户上网行为或网站服务器等设备进行攻击的行为,如植入恶意代码.修改网站权限.获取网站用户隐私信息等 Web应用程序的安全性是任何基于Web业务的 ...

  8. 常见的Web攻击手段-整理

    整理常见的Web攻击手段: XSS攻击 CSRF攻击 SQL注入攻击 文件上传漏洞 DDoS攻击 其他攻击手段 XSS攻击 XSS(Cross Site Scripting)跨站脚本攻击,为了不与层叠 ...

  9. 识别常见的Web应用安全漏洞

    在Internet大众化及Web技术飞速演变的今天,在线安全所面临的挑战日益严峻.伴随着在线信息和服务的可用性的提升,以及基子Web的攻击和破坏的增长,安全风险达到了前所未有的高度.由于众多安全工作集 ...

最新文章

  1. 大工计算机基础在线3,大工16秋《计算机应用基础》在线测试3-满分100分.pdf
  2. 如何高效地阅读文献?
  3. SPOJ 4564 Chop Ahoy! Revisited!
  4. 北斗有 35 颗卫星,而 GPS 有 24 颗卫星,为什么二者数量不同?
  5. 面试加分项!Android权限处理,手慢无
  6. 在列表前方插入一个数据_通俗易懂的Redis数据结构基础教程
  7. 基于python的贝叶斯分类算法_Python实现贝叶斯分类器
  8. Python+matplotlib设置y轴标签距离、位置、竖排
  9. python数据库操作——NoSQL数据库之连接MongoDB、Redis数据库
  10. Java数据类型的转换
  11. sk hynix 固态硬盘 管理_5000MB/s 极速狂飙——希捷酷玩FireCuda 520 PCIE4.0 SSD固态硬盘体验...
  12. 简单神经网络手算笔记
  13. word论文排版,页码和页眉
  14. python推箱子小游戏_python实现推箱子游戏
  15. 报错:No coverage information was collected, exit without writing coverage information
  16. C++程序的设计机制1 NVI机制
  17. js使用cookie实现7天免登录
  18. 编程参考 - va_list的定义问题
  19. Android 项目必备(二十九)-->App 在线升级与更新
  20. flask项目实战记录一:搭建flask框架

热门文章

  1. 苹果手机app连不上服务器无响应,iPhone手机软件卡死无响应或无法退出怎么办
  2. 学校计算机班班通维护保养记录,中心学校班班通设备维护保养制度
  3. MY admire man-Eddie Peng Yuyan
  4. arcpy_根据excel批量修改字段别名
  5. git-bash.exe和git-cmd.exe运行Git的区别
  6. Django REST Framework-分页
  7. HEX,S19互相转换
  8. Selenium Chrome的最全常用Option及其一些加速优化
  9. jvm 垃圾回收器的并发与并行
  10. 工具 - 自动换IP投票软件使用图解