一、SQL语句注入

1、请求服务器端要对用户输入的数据进行校验。
2、在处理输入之前,验证所有客户端请求的数据,包括请求参数、URL和HTTP头的内容。
3、验证输入数据的类型、长度和数据格式是否正确。
4、使用白名单验证允许的输入字符而不是直接使用黑名单。
5、在敏感字符输入后要进行转义或编码。
6、明确所有输入正确的字符集。
7、避免动态拼接的SQL语句,如果使用要对特殊字符进行语法转义。
8、给用户设置满足正常使用最小权限

二、XPath注入

1、服务器端开始处理用户提交的请求数据之前,对输入的数据进行验证,验证每一个参数的类型、长度和格式。
2、对于系统出现的错误信息,采用IE错误编码信息替换,屏蔽操作系统的出错信息,这样可以向攻击者提供更少的信息进行下一步注入攻击。
3、及时检查是否有特殊字符,如果有特殊字符 ,就转义特殊字符或者替换。比如:单引号、双音,都进行转义或者替换。
4、XPath查询参数化,编译构建XPath表达式,将数据输入以变量形式传递。
5、针对敏感信息如密码之类,建议使用哈希值较长的算法处理。

三、操作系统命令注入

1、客户端、服务器端都要进行命令过滤。

2、针对相应的用户给最小的运行权限,最好可以指定到具体的目录、明确使用的命令。
3、程序执行出错时,不要显示与内部实现相关的异常报错细节。
4、针对运行有限的命令、建议使用白名单方式过滤。
5、针对需要用户运行命令的请求,尽可能减小需要从外部输入的数据。比如:如果传参数的地方不要传命令行。
6、有下载文件,给文件分配一个ID号来访问文件,避免使用文件名来访问。

四、JSON数据注入

1、特殊字符前加反斜杠()进行转义
2、使用Javascript编码
3、使用HTML编码

五、XSS

1、在输入过滤,在显示的地方做输出编码。
2、使用一个统一的规则做输出编码
3、富文本编辑器,要使用白名单控制输入。
4、使用HTTPOnly标志

六、CSRF

1、针对重要功能增加确认操作或重新认证,比如涉及支付、转账、修改手机号码等涉及安全隐私的信息需要加验证码的方式进行确认
2、每个会话中使用强随机令牌(token)来保护。
3、检验HTTP Referer是否合法

七、会话攻击

1、采用强算法生成会话ID,会话ID必须具有随机性和不可预测性,长度至少为128位。
2、设定会话过期时间,如:在一定时间内没有与应用交互,设定在登录特定时间内要重新登录系统。
3、设置好Cookie的两个属性:secure和HttpOnly可以用来防御嗅探和阻止JS操作。

八、身份认证

1、用户注册时强制用户输入密码强度较高的密码。
2、用户登录系统,要进行次数限制,防止非法暴力破解用户账户信息,比如登录三次失败后,要阻止当前用户半个小时内不能再次尝试登录。
3、使用HTTPS请求传输身份验证和密码、身份证、手机号码,邮箱等数据。
4、当用户密码重置时,以短信、或者邮件的方式通知用户
5、用户账号上次使用信息在下一次成功登陆时向用户提供登录日志记录。
6、在执行关键操作(如:修改登录密码、支付密码、邮箱、手机号码等)使用人脸识别等方式进行身份验证。

九、Tomcat安全配置

1、Tomcat以没有特权的用户账户和组运行,没有执行交互shell命令权限。
2、Tomcat运行的版本必须打了所有安全补丁的版本。
3、Tomcat默认的例子相关路径和文件必须删除。
4、Tomcat管理员默认密码必须被修改成复杂密码。
5、页面出现信息不能显示Tomcat的版本信息和系统信息。
6、Tomcat配置文件启用安全的http方法,如:GET POST。
7、应用程序和管理程序建议使用不同的端口。
8、项目部署前删除测试代码文件。
9、删除无用的文件如:备份文件、临时文件等。
10、配置文件中不要出现使用默认用户和密码的情况。
11、不要在robot.txt中泄露目录结构。

十、Apache安全配置

1、选择漏洞较少的apache版本。
2、隐藏Apache版本号。
3、删除Apache欢迎页面。
4、配置只允许访问Apache的Web目录
5、应用程序和管理程序使用不同的端口。
6、管理控制台必须使用SSL协议。
7、部署前删除测试代码文件。
8、删除无用的文件如:备份文件、临时文件等。
9、配置文件中没有默认用户和密码。
10、不要在robot.txt中泄露目录结构。

十一、数据库通用配置

1、线上环境不要使用数据库默认用户名和密码。
2、数据库用户的密码要符合一定的复杂度。
3、访问数据库的用户要赋予所需要的最小权限。

十二、绕过认证

1、对登录后可以访问的URL做是否登录检查,如果没有登录过,应该跳转到系统的登录页面。
2、对于敏感信息的请求如登录时、修改密码等请求一定要用HTTPS协议。

十三、文件上传

1、上传的路径要限制在固定路径下。
2、上传文件路径只给只读和写权限,不需要执行权限。
3、服务端文件类型要使用白名单过滤,后台不应有添加扩展名类型功能;通过配置文件调整支持上传的文件类型。
4、文件上传使用自己的命名规则重新命名上传的文件。

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

后端技术:Web安全常见漏洞和修复建议,值得收藏!相关推荐

  1. Web常见漏洞及修复建议

    目录 1.SQL注入 漏洞描述 Web程序中对于用户提交的参数未做过滤直接拼接到SQL语句中执行,导致参数中的特殊字符破坏了SQL语句原有逻辑,攻击者可以利用该漏洞执行任意SQL语句,如查询数据.下载 ...

  2. 后端技术:Maven 最全知识总结,值得收藏!

    来源:cnblogs.com/hzg110/p/6936101.html 一.为什么使用Maven这样的构建工具[why] 二.maven是什么[what] 三.安装maven 四.第一个maven ...

  3. 常见web安全漏洞及修复建议

    文章目录 常见WEB漏洞 高危漏洞 SQL Injection(SQL注入攻击) 漏洞描述 修复建议 Cross-site scripting(跨站脚本攻击,简称XSS) 漏洞描述 修复建议 Brok ...

  4. Web安全常见漏洞原理、危害及其修复建议

    web安全常见漏洞原理.危害及其修复建议 一. SQL注入漏洞 原理 危害 修复建议 二.XSS漏洞 原理 危害 修复建议 三. CSRF漏洞 原理 危害 修复建议 四. SSRF漏洞 原理 危害 预 ...

  5. 常见Web漏洞的修复建议手册

    漏洞类型 修复建议 明文传输 1.需要对密码字段进行md5+salt(aes/rsa等不可逆算法)加密 用户名枚举 1.建议对接口登录页面的判断回显信息修改为一致:用户名或密码错误(模糊提示). 用户 ...

  6. web渗透常见漏洞总结

    一.SQL注入 1. 原理 SQL:结构化查询语言 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. SQL注射能使攻 ...

  7. WEB安全防御总结 : 列举漏洞及修复建议

    一. 不安全的第三方链接: 漏洞简介: 在新打开的页面中可以通过 window.opener获取到源页面的部分控制权,即使新打开的页面是跨域的也照样可以 修复建议: 在a标签中加入rel=" ...

  8. Web中间件常见漏洞总结

    一.IIS中间组件: 1.PUT漏洞 2.短文件名猜解 3.远程代码执行 4.解析漏洞 二.Apache中间组件: 1.解析漏洞 2.目录遍历 三.Nginx中间组件: 1.文件解析 2.目录遍历 3 ...

  9. 常见弱密钥以及修复建议

    服务器使用了anonymous套件 匿名加密套件检测(CVE-2007-1858),支持对SSL3.0.TLS1.0.TLS1.1.TLS1.2多种协议,19个ANON类加密套件,包含DES.AES. ...

最新文章

  1. ubuntu 远程访问mysql_Ubuntu下远程访问MySQL数据库
  2. java图像分类源码_在Android设备上使用NCNN图像分类的demo
  3. 【学习笔记】求解简单递归式的一般方法
  4. 主从同步设置的重要参数log_slave_updates
  5. Flask笔记-构建mvc分层结构及优化
  6. 《天下无贼》经典对白
  7. Flink的并行度和Kafka的partition的结合
  8. HTML5有哪些新特性
  9. corosycnpacemaker的高可用web集群
  10. Javascript:Ajax讲解
  11. js-事件处理(重点)
  12. centos下nginx安装和配置
  13. 周立功上位机获取CAN通讯数据解析 V2.0
  14. 烟雨江南暂排第一,第四届橙瓜网络文学奖入围20年十佳奇幻大神
  15. 用matlab模拟等离子体论文,等离子体模型的建立
  16. MySQL的系统信息函数和加密解密函数(十四)
  17. python scipy 密度函数 分位数 累计函数计算p值 卡方检验 t检验 F检验 假设检验 AB实验 显著性检验
  18. 公众号数据分析工具分析微信公众号的六大定位
  19. 第九届《生活月刊》国家精神造就者荣誉揭晓
  20. jzy3D安装到弃坑

热门文章

  1. 如何编写 Cloud9 JavaScript IDE 的功能扩展
  2. 网站数据库中“密码加密”方法思考
  3. IE8开发人员工具资料
  4. 灰度图的width和widthstep的区别
  5. 【pyqt5学习】——tablewidget控件学习
  6. python合并pdf 加书签_Python生成pdf目录书签的实例方法
  7. 第10章 Python 数字图像处理(DIP) - 图像分割 基础知识 标准差分割法
  8. python语言打印菱形_Python打印菱形
  9. 命令点亮硬盘灯_macOS下移动硬盘无法挂载且硬盘灯一直闪烁的解决方法
  10. 分享:一款快速传输大文件、支持英文版的工具