你需要知道的“Web安全测试”(最后的总结蛮深刻)

2024-02-23 21:08

本文主要是介绍你需要知道的“Web安全测试”(最后的总结蛮深刻),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Web应用程序中是什么导致安全性问题呢?一般有以下几个原因:
  1、复杂应用系统代码量大、开发人员多、难免出现疏忽。
  2、系统屡次升级、人员频繁变更,导致代码不一致。
  3、历史遗留系统、试运行系统等多个Web系统共同运行于同一台服务器上。
  4、开发人员未经过安全编码培训或者公司根本就没有统一的安全编码规范。
  5、测试人员经验不足或者没经过专业的安全评估测试就发布上线。
  6、没有对用户的输入进行验证,举几个例子:
  1)永远不要信任用户的输入,要对用户的输入进行校验
  2)数字型的输入必须是合法的数字
  3)字符型的输入中对 编码符号要进行特殊处理
  4)验证所有的输入点,包括Get,Post,Cookie以及其他HTTP头
Web应用通常存在的十大安全问题:
  1、SQL注入
  拼接的SQL字符串改变了设计者原来的意图,执行了如泄露、改变数据等操作,甚至控制数据库服务器, SQL Injection与Command Injection等攻击包括在内。
  2、跨站脚本攻击(简称CSS或XSS)
  跨站脚本(Cross - SiteScripting)是指远程Web页面的Html代码可以插入具有恶意目的数据,当浏览器下载该页面,嵌入其中的恶意脚本将被解释执行,从而对客户端用户造成伤害。
  3、没有限制URL访问
  系统已经对URL的访问做了限制,但这种限制却实际并没有生效。攻击者能够很容易的伪造请求,直接访问未被授权的页面.。
  4、越权访问
  用户对系统的某个模块或功能没有权限,通过拼接URL或Cookie欺骗来访问该模块或功能。
  5、泄露配置信息
  服务器返回的提示或错误信息中出现服务器版本信息泄露、程序出错泄露物理路径、程序查询出错返回SQL语句、过于详细的用户验证返回信息。
  6、不安全的加密存储
  常见的问题是不安全的密钥生成和储存、不轮换密钥和使用弱算法。使用弱的或者不带Salt
  的哈希算法来保护密码也很普遍。外部攻击者因访问的局限性很难探测这种漏洞。他们须先破解其他东西以获得需要的访问。
  7、传输层保护不足
  在身份验证过程中没有使用SSL / TLS,因此暴露传输数据和会话ID,被攻击者截听,或使
  用过期或者配置不正确的证书。
  8、登录信息提示
  用户登录提示信息会给攻击者一些有用的信息,作为程序的开发人员应该做到对登录提示信息的模糊化,以防攻击者利用登录得知用户是否存在。
  9、重复提交请求
  程序员在代码中没有对重复提交请求做限制,这样就会出现订单被多次下单,帖子被重
  复发布。恶意攻击者可能利用此漏洞对网站进行批量灌水,致使网站瘫痪。
  10、网页脚本错误
  访问者所使用的浏览器不能完全支持页面里的脚本,形成“脚本错误”,也就是网站中的脚本没有被成功执行。遇到“脚本错误”时一般会弹出一个非常难看的脚本运行错误警告窗口
  
归纳一下,主要有以下几点:
  1、永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式或限制长度;对单引号和双”-“进行转换等。
  2、永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取。
  3、永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
  4、不要把机密信息直接存放,加密或者Hash掉密码和敏感的信息。
  5、应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装。
  6、SQL注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用SQL注入检测工具jsky、MDCSOFT SCAN等。采用MDCSOFT - IPS可以有效的防御SQL注入、XSS攻击等。

欢迎大家在工作和学习中相互交流和成长。 文章来自非比君测的转载,作者非比君,因为没有找到原链接,所以暂不列出。
最后,支付宝账号(supassxu@163.com),感兴趣的朋友可以激励下本人,哈哈,请不要超过6元,谢谢,非诚勿扰。

这篇关于你需要知道的“Web安全测试”(最后的总结蛮深刻)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/739923

相关文章

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb