使用https协议解决掉顽固不化的已解密的登录请求
1.1 已解密的登录请求概述
在应用程序测试过程中,检测到将未加密的登录请求发送到服务器。由于登录过程所用的部分输入字段(例如:用户名、密码、电子邮件地址、社会保险号码,等等)是个人敏感信息,建议通过加密连接(如 SSL)将其发送到服务器。任何以明文传给服务器的信息都可能被窃,稍后可用来电子欺骗身份或伪装用户。 此外,若干隐私权法规指出,用户凭证之类的敏感信息一律以加密方式传给网站。
1.2 安全风险及原因分析
安全风险中,可能会窃取诸如用户名和密码等未经加密即发送了的用户登录信息
原因:诸如用户名、密码和信用卡号之类的敏感输入字段未经加密即进行了传递
1.3 AppScan扫描建议
1. 确保所有登录请求都以加密方式发送到服务器。
2. 请确保敏感信息,例如:
- 用户名
- 密码
- 社会保险号码
- 信用卡号码
- 驾照号码
- 电子邮件地址
- 电话号码
- 邮政编码
一律以加密方式传给服务器。
1.4 应用程序解决方案
已解密的登录请求,要求就是数据要加密传输。最简单有效的解决方式采用SSL加密协议传输,在进行测试过程中也尝试在tomcat下SSL方式配置,写下来供参考。
tomcat在生成证书文件后,在service.xml 进行配置: 给证书加上日期年限-validity 36500 100年
- 安全证书生成过程:进入到cmd 进入到cd jdk bin目录下执行
keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "D:\app.keystore" -validity 36500
- 生成证书 任意路径都行,放到tomcat文件夹下好管理。
- 注意:“名字与姓氏”应该是域名(服务器地址或域名)若输成了姓名,和真正运行的时候域名不符,会出问题

- 进入到tomcat 的conf 目录下修改servlet.xml ,找到这个配置,添加你的证书的地址以及密码在service.xml配置SSL
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="D:\tomcat-6.0\conf\app.keystore"
keystorePass="110120"/>
Tomcat服务器:
JDK版本过低也会带来不安全漏洞,请升级JDK为最新版本。升级JDK风险请安按照系统升级风险酌情考虑。
(先备份再配置,低版本的配置后有启动不了的风险,请升级tomcat和jdk版本,JDK1.7及以上支持TLS1.2协议)
如果服务端不支持SSLv3,只支持TLSv1、TLSv1.1和TLSv1.2,又该如何设置呢?
Tomcat 6 使用属性 sslProtocols="TLSv1,TLSv1.1,TLSv1.2" 示例代码如下:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocols="TLSv1,TLSv1.1,TLSv1.2" --去掉 sslProtocol="TLS"
keystoreFile="D:\tomcat-6.0\conf\app.keystore"
keystorePass="110120"/>
Tomcat 7 and later这时需要设置另外一个属性sslEnabledProtocols,示例代码如下:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" --去掉 sslProtocol="TLS"
keystoreFile="D:\tomcat-6.0\conf\app.keystore"
keystorePass="110120"/>
开发人员应该能够轻松应对SSL 3.0 SSL 2.0 Poodle漏洞
在这里我是把证书放到tomcat文件夹下。注意要把8443端口改为你自己服务器的端口,以防一直跳转到8443端口。
这样配置后虽然可以通过https访问,但仍然还可以通过8080使用普通的http访问,所以还必须禁止普通模式登录。把原有的普通模式注释掉即可。
<!--
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
-->
还得在web.xml添加配置。在tomcat的conf下的web.xml的最后添加配置文件实现http协议自动转化为https 协议,配置文件添加在 <welcome-file-list> </welcome-file-list> 配置文件后面
对所有的请求都转化为https:
<security-constraint>
<!-- Authorization setting for SSL -->
<web-resource-collection >
<web-resource-name >SSL</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
只对 .jsp 的请求自动转化为https
<security-constraint> <!-- Authorization setting for SSL --> <web-resource-collection > <web-resource-name >SSL</web-resource-name> <url-pattern>*.jsp</url-pattern> <url-pattern>*.action</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
应注意,由于项目的一些组件无法通过https,因此url-pattern字段只对.jsp和.action进行了限制,如果不做特定限制,则系统默认是全部使用https传输。而且上述设置一旦在某个工程中出现,那么当前tomcat将全局采用这一配置。
使用https协议解决掉顽固不化的已解密的登录请求的更多相关文章
- Appscan漏洞之已解密的登录请求
本次针对 Appscan漏洞 已解密的登录请求 进行总结,如下: 1.1.攻击原理 未加密的敏感信息(如登录凭证,用户名.密码.电子邮件地址.社会安全号等)发送到服务器时,任何以明文传给服务器的信息都 ...
- IBM AppScan安全測试一例——已解密的登录请求
问题严重级别:高 此类问题在做政府项目(第三方软件评測中心)验收的时,须要马上整改.例如以下图:
- AppScan漏洞“已解密的登陆请求”修复解决方案
最近在修复系统漏洞时,使用新版AppScan扫描IIS站点(WebForm)出现一个严重漏洞“已解密的登陆请求”. 扫描工具修复的建议为在登陆界面不使用含“password”类型的控件或加密录入参数. ...
- curl提示不支持https协议解决方法
根据网上的资料,这个问题的原因是因为在安装curl时使用默认安装,但是默认安装并不支持https协议 简单粗暴的办法就是,卸载重新安装curl(有一种方法是重新编译就可以了,然后使用编译后的可执行文件 ...
- 解决跨站脚本注入,跨站伪造用户请求,sql注入等http安全漏洞
跨站脚本就是在url上带上恶意的js关键字然后脚本注入了,跨站伪造用户请求就是没有经过登陆,用超链接或者直接url上敲地址进入系统,类似于sql注入这些都是安全漏洞. sql注入 1.参数化查询预处理 ...
- nginx 使用HTTPS协议-SSL证书模块报错解决-附nginx安装 : [emerg] the "ssl" parameter requires ngx_http_ssl_module in nginx.c
Linux系统下ngnix使用HTTPS协议启动报错: nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_modul ...
- LR录制https协议报证书错误,导航已阻止
使用IE浏览器录制https协议报证书错误,导航已阻止,修改如下配置文件:
- Https协议报错:com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnectionOldImpl解决方法
旭日Follow_24 的CSDN 博客 ,全文地址请点击: https://blog.csdn.net/xuri24/article/details/82220333 所用应用服务器:JBoss服务 ...
- Python内置的urllib模块不支持https协议的解决办法
Django站点使用django_cas接入SSO(单点登录系统),配置完成后登录,抛出“urlopen error unknown url type: https”异常.寻根朔源发现是python内 ...
随机推荐
- [ACM_模拟] ZOJ 3713 [In 7-bit 特殊输出规则 7bits 16进制]
Very often, especially in programming contests, we treat a sequence of non-whitespace characters as ...
- ueditor样式过滤问题
1.4.3版本样式过滤处理如下: if (domUtils.isEmptyNode(me.body)) { //alert("xx"); //me.body.inner ...
- 谷歌(Chrome)浏览器调试JavaScript小技巧
谷歌浏览器不仅仅可以用来上网,对于开发人员来说,它更像是一款强大的开发辅助工具. 工欲善其事必先利其器,接下来笔者给大家分享一些Chrome的使用方法. 假如读者了解如何在Chrome中添加JavaS ...
- 《区块链:从入门到放弃》之obc安装步骤
obc安装步骤 朋友们可能会好奇,厨师不研究菜谱怎么改研究兵法了,哈哈,我原本是app出身,最近被安排去预研区块链和比特币技术,2个月下来,颇有斩获.期间得到IBM的CC同学指导我一步一步安装obc的 ...
- 无线客户端框架设计(5):调用MobileAPI的设计(iOS篇)
这一节讲如何发起网络请求. iOS用于调用MobileAPI的第三方组件很多,我们这里采用的是以下组件: 1)ASIHTTPRequest,用于请求MobileAPI:http://allseeing ...
- JavaScript 中的 this ,看着一篇就够了
tip 在 js 中,this 这个上下文总是变化莫测,很多时候出现 bug 总是一头雾水,其实,只要分清楚不同的情况下如何执行就 ok 了. 全局执行 首先,我们在全局环境中看看它的 this 是什 ...
- atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 。打开浏览服务器文件夹java .net php
atitit. web 在线文件管理器最佳实践(1)--- elFinder 的使用流程解决之道 .打开浏览服务器文件夹java .net php 1. 环境:::项目java web,需要打开浏览服 ...
- 数据类型/强制类型转换 和运算符---标识符规则/关键字 a++和++a区别
3.2关键字都是小写,TRUE FALSE NULL都不是Java关键字 3.3数据类型 变量相当于一个有名称的容器,该容器用于装各种不同类型的数据 Java类型分为2种 基本类型: 引用类型: 基本 ...
- python的反射
目前大多数网站都是通过路由的方法来,处理url请求,如果有很多个url的话,不停的include或者用if判断匹配,似乎不太符合情理,因此这里讲讲python的反射机制, 自动装在模块.请看下面的实例 ...
- (转)数据库获得当前时间getdate()
CONVERT(nvarchar(10),count_time,121): CONVERT为日期转换函数,一般就是在时间类型 (datetime,smalldatetime)与字符串类型(nchar, ...