你需要知道的“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

相关文章

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

Java反转字符串的五种方法总结

《Java反转字符串的五种方法总结》:本文主要介绍五种在Java中反转字符串的方法,包括使用StringBuilder的reverse()方法、字符数组、自定义StringBuilder方法、直接... 目录前言方法一:使用StringBuilder的reverse()方法方法二:使用字符数组方法三:使用自

Python依赖库的几种离线安装方法总结

《Python依赖库的几种离线安装方法总结》:本文主要介绍如何在Python中使用pip工具进行依赖库的安装和管理,包括如何导出和导入依赖包列表、如何下载和安装单个或多个库包及其依赖,以及如何指定... 目录前言一、如何copy一个python环境二、如何下载一个包及其依赖并安装三、如何导出requirem

Java8需要知道的4个函数式接口简单教程

《Java8需要知道的4个函数式接口简单教程》:本文主要介绍Java8中引入的函数式接口,包括Consumer、Supplier、Predicate和Function,以及它们的用法和特点,文中... 目录什么是函数是接口?Consumer接口定义核心特点注意事项常见用法1.基本用法2.结合andThen链

web网络安全之跨站脚本攻击(XSS)详解

《web网络安全之跨站脚本攻击(XSS)详解》:本文主要介绍web网络安全之跨站脚本攻击(XSS)的相关资料,跨站脚本攻击XSS是一种常见的Web安全漏洞,攻击者通过注入恶意脚本诱使用户执行,可能... 目录前言XSS 的类型1. 存储型 XSS(Stored XSS)示例:危害:2. 反射型 XSS(Re

Rust格式化输出方式总结

《Rust格式化输出方式总结》Rust提供了强大的格式化输出功能,通过std::fmt模块和相关的宏来实现,主要的输出宏包括println!和format!,它们支持多种格式化占位符,如{}、{:?}... 目录Rust格式化输出方式基本的格式化输出格式化占位符Format 特性总结Rust格式化输出方式

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入