美文网首页Web安全
Web项目开发中常见安全问题防范

Web项目开发中常见安全问题防范

作者: AIAndData | 来源:发表于2017-10-17 21:32 被阅读26次

计算机程序主要就是输入/输出,安全问题由此产生,凡是有输入的地方都可能带来安全风险。根据输入的数据类型,web应用主要有数值型、字符型、文件型。

要消除风险就要对输入的数据进行检查,对于Web应用来说,检查的位置主要是前端和后端。前端检查只能防止正常状况,没法防止使用工具、程序绕开检查直接把数据发送给服务器。

输入检查

防止输入注入型攻击。所有的输入数据都要检查,除了前端检查外,为防止使用工具、程序绕开前端检查直接把数据发送给服务器,后端也要检查所有输入数据。

依据产品文档的要求进行合法性检查,数值型,手机号,时间,邮箱等

检查文本型是否含控制字符,过滤掉控制字符

检查文本型的长度

URL字符串转义,使用urlencode函数处理

文件上传

防止文件注入型攻击。

1、文件上传目录设置成不可执行

2、判断文件类型。结合MIME type与文件扩展名,设置文件类型白名单。对于图片文件,可以利用图片库函数深层次检查是否真是图片。

3、重命名文件名。

4、文件服务器使用独立的域名。

输出转义

防止XSS(跨站脚本攻击)。向页面输出的文本型数据进行html encode(转义),即是将一些html中的特殊字符转义成普通字符,比如 & 转义成 & ,< 转义成 < ,'与"都要转义。对应的函数:javascriptencode,php的htmlentities。

同理xml数据包里的字符串值使用xmlencode,json数据包的字符串值使用jsonencode转义。

XSS处理

XSS的本质是HTML注入,用户输入的数据被当成Html代码执行了。

1、cookie使用HttpOnly限制

使得在客户端的js代码不能读取cookie值,但是不能防止从HTTP header里得到cookie值。

2、输出文本HTML转义

对网页上显示的文本内容使用HtmlEncode转义。js函数:OWASP ESAPI中的encodeCharacter。其它的如xmlencode、jsonencode等转义函数。

3、检查输入的URL

输入的url添加上 http: 或者 https:,然后转义输出到网页端

4、对传入js函数的文本型参数值进行javascript转义

先进行javascript转义再进行HTML转义。

总结如下

SQL注入

预防办法:数据与代码分离,即不用字符串拼凑SQL语句,使用SQL预处理方法(参数使用占位符 ?)。

XST处理

XST(跨站追踪)攻击,关闭Web 服务器的TRACE方法。

CSRF攻击的防御

通常需要防御CSRF(Cross-Site Request Forgeries)攻击的页面是用户登录、修改/删除确认、订单确认等添加新数据、修改数据的页面,此外此类页面必须使用POST方式提交。

HTTP头注入

替换HTTP头字符值中的换行符。

Cookie安全

Cookie仅保存SessionId值,设置HttpOnly属性为On,

用户密码安全

1、使用安全的bcrypt替代MD5,bcrypt会产生随机盐 salt

权限控制

1、SSO单点登录。OpenID系统

2、Spring Security的实现-基于角色的访问控制(Role-Based Access Control)RBAC

3、基于数据的访问控制。比如将用户Id、对象id修改成另一个存在的id,如果没有检查当前登录用户是否是参数对应的id用户,就会产生修改别的用户数据的问题,也即是越权访问。

4、OAuth授权。OAuth第三方开源库

5、SessionId。sessionid加密处理


相关文章

  • Web项目开发中常见安全问题防范

    计算机程序主要就是输入/输出,安全问题由此产生,凡是有输入的地方都可能带来安全风险。根据输入的数据类型,web应用...

  • Web 开发常见安全问题

    前端安全XSS 漏洞CSRF 漏洞 后端安全SQL 注入漏洞权限控制漏洞SESSION 与 COOKIEIP 地址...

  • Web 开发常见安全问题

    前端安全 XSS漏洞 CSRF漏洞 后端安全 SQL 注入漏洞 所有 SQL 语句都使用参数化查询(推荐)或对参数...

  • 关于web开发的常见安全问题

    常见的安全问题 每次向服务器发送数据时,都需要考虑安全性。到目前为止,HTML表单是最常见的攻击路径(可能发生攻击...

  • WEB应用的常见5大攻击及预防

    上一篇介绍了web应用常见的10大安全问题,今天来给大家介绍一个WEB应用的常见5大攻击及预防,如文章中描述有误欢...

  • Spring Boot 2 + Redis 处理 Session

    〇、背景 Web 开发中,通过 Session 在服务端记录用户状态是很常见的操作。对于 Web 开发中 Sess...

  • [LNMP]Linux的Web环境的安全配置

    安全问题是Web开发中非常重要的,本篇文章主要描述Web环境配置时候应该注意的安全问题,避免因web配置的不严谨导...

  • 常见Web安全漏洞及其防范

    常见Web漏洞及其防范 1.XSS(Cross Site Scripting)跨站脚本攻击防范:客户端与服务端同时...

  • Web开发中的安全问题

    网站安全是构建网站时必须要考虑的一个因素,网站安全的重点在于服务器的安全配置管理以及程序脚本的完善性。当然如果服务...

  • web常见攻防

    背景 博主早年从事web安全相关的工作,近日得闲,简单梳理几个常见的web安全问题。 XSS 首先说下最常见的 X...

网友评论

    本文标题:Web项目开发中常见安全问题防范

    本文链接:https://www.haomeiwen.com/subject/pmjjuxtx.html