Web应用渗透测试经验教训1.0

一、基础设施的选择
  1. JDK、应用程序服务器(例如:Tomcat)尽量选择较新版本,减少漏洞隐患。
  1. ui 框架和 js 框架
  • Bootstrap版本 ≥ 4.3.1(建议:4.6.2)参考文档
  • jQuery版本 ≥ 3.5.0(建议:3.7.1)参考文档 搜索 vulnerability 字样。
  1. 依赖组件(.jar包)也尽量选择没有漏洞(vulnerability)的版本。例如:
  • commons-fileupload 版本 ≥ 1.6.0
  • shiro 版本 ≥ 1.13.0
  • 。。

 漏洞的发现是一个渐进的过程,所以要养成不断升级的习惯。

二、开发框架的选择
  1. 选择成熟稳定的框架 (Spring MVC 或 Spring Boot)
  2. 选择安全框架(如:Spring Security 或 Apache Shiro)
  3. 选择 ORM 框架(如:Hibernate、mybatis)
  4. 选择连接池(如:c3p0、HikariCP、dbcp)
  5. 选择加密算法库(建议:Bouncy Castle Provider)
  6. (前端)选择 js 框架(如:jQuery)
  7. (前端)选择 ui 框架(如:Vue.js、Bootstrap)
  8. (前端)选择加密库(如:crypto-js、sm-crypto)
三、开发套路或习惯
  1. 敏感信息不能明文传输,如:密码。
  2. hash 算法选择 SHA-256 或 SM3,而且记得加盐(Salt)。
  3. 账号密码必须要有一定复杂度,建议:>8位,数字、字母大小写(建议+符号)混合。
  4. 账号密码的匹配使用安全框架,而是不是用 Sql 语句查询。
  5. 所有的交互(表单和内部接口)都处于安全框架的会话保护。
  6. 对外接口添加 hash 验签。
  7. 所有数据库操作通过 ORM 框架进行,尽量减少原生 Sql 的拼凑。
    ORM框架一般有属性映射和参数化查询,一定程度上会规避 Sql 注入。

【完】

相关推荐
luiyarch11 小时前
汽车电子ISO 21448 SOTIF系列(第11期):SOTIF的V模型长什么样?
安全·车载系统·汽车
Thneonl21 小时前
Flink Operator 的隐藏陷阱:容器名不是你以为的那个
安全·kubernetes
Thneonl21 小时前
kubectl scale ds 是个 404:DaemonSet 没有 replicas
安全·kubernetes
青Cheng序员石头21 小时前
失控之前 | AI 安全到底在保护什么?
后端·安全·aigc
龙亘川6 天前
一网统管AI平台民生业务实践:基于城市数字底座赋能公积金业务服务升级
大数据·安全·智慧城市·开源软件·数据可视化·政务
kybs19916 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
LorryJovens6 天前
【LAAP科研】双系统具身AGI范式研究——基于LAAP认知架构与Jev概率决策模型的系统性技术调研与范式验证
人工智能·gpt·安全·架构
其实防守也摸鱼6 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
山东科恩光电6 天前
提升安全性的关键技术:安全触边在工业自动化中的应用解析
安全