web 安全
一、客户端脚本安全
(1)跨站脚本攻击(XSS):
XSS攻击,通常指黑客通过“html注入” 篡改了网页,插入了恶意的脚本,从而在用户浏览网页的时候,控制用户浏览器的一种攻击。
最常见的XSS攻击就是通过读取浏览器的Cookie对象,从而发起“cookie劫持”,当前用户的登录凭证存储于服务器的session中,
而在浏览器中是以cookie的形式进行存储的,cookie被劫持后,意味着攻击者可以不通过密码而直接登录系统。我们也可以直接在浏览器中输入脚本javascript:alert(document.cookie)来获取当前cookie值。
为cookie植入HttpOnly标识。
解决方案:<Context docBase="E:\tomcat\apache-tomcat-6.0.24/webapps/netcredit" path="/netcredit" reloadable="false" useHttpOnly="true"/>
或者:在web.xml 中 加入
<session-config>
<cookie-config>
<http-only>true</http-only>
</cookie-config>
</session-config>
二、服务器端应用安全
1、SQL注入攻击:
Sql注入的的两个关键条件:第一个是用户能够控制输入;第二个是原本程序要执行的代码,拼接了用户输入的数据。PreparedStatement与Statement
2.关闭web服务器的错误回显功能,这样可以防止攻击者对系统进行攻击后,通过回显的详细错误信息对攻击内容进行调整,对攻击者提供极大的便利。
我们在项目的web.xml文件中添加以下示例代码
<error-page>
<error-code>400</error-code>
<location>/error400.jsp</location>
</error-page>
3.数据库自身使用最小权限原则,系统程序不使用最高权限的root对数据库进行连接,而是使用能满足系统需求的最小权限账户进行数据库连接,
而且多个数据库之间使用不同的账户,保证每个数据库都有独立对应的账户。
4、认证与会话管理
登录使用验证码、限制密码错误次数,如果超过次数可以限制该ip一段时间内不可登录。
给Session设置了一个有效时间,来保证在有效时间后Session将自动销毁,以防止Session长连接所带来的安全隐患
<session-config>
<session-timeout>30</session-timeout>
</session-config>
三、文件上传漏洞
文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过脚本文件获得了执行服务器端命令的能力,这样将会导致严重的后果。
可以通过控制对上传文件详细的格式验证控制脚本文件上传;如果以上验证都成功通过,本系统在对文件进行存储时会将文件名进行重命名处理,
并且设置相应的web服务器,默认不显示目录。因为文件上传如果需要执行代码,则需要用户能够访问到这个文件,因此使用随机数改写了文件名,
将极大的增加攻击的成本,甚至根本无法成功实施攻击。
web 安全的更多相关文章
- C# Web应用调试开启外部访问
在用C#开发Web应用时有个痛点,就是本机用VS开启Web应用调试时外部机器无法访问此Web应用.这里将会介绍如何通过设置允许局域网和外网机器访问本机的Web应用. 目录 1. 设置内网访问 2. 设 ...
- 网页提交中文到WEB容器的经历了些什么过程....
先准备一个网页 <html><meta http-equiv="Content-Type" content="text/html; charset=gb ...
- 闲来无聊,研究一下Web服务器 的源程序
web服务器是如何工作的 1989年的夏天,蒂姆.博纳斯-李开发了世界上第一个web服务器和web客户机.这个浏览器程序是一个简单的电话号码查询软件.最初的web服务器程序就是一个利用浏览器和web服 ...
- java: web应用中不经意的内存泄露
前面有一篇讲解如何在spring mvc web应用中一启动就执行某些逻辑,今天无意发现如果使用不当,很容易引起内存泄露,测试代码如下: 1.定义一个类App package com.cnblogs. ...
- 对抗密码破解 —— Web 前端慢 Hash
(更新:https://www.cnblogs.com/index-html/p/frontend_kdf.html ) 0x00 前言 天下武功,唯快不破.但在密码学中则不同.算法越快,越容易破. ...
- 使用 Nodejs 搭建简单的Web服务器
使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块. ...
- 一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)
Web.config的读取 对于Web.config的读取大家都很属性了.平时我们用得比较多的就是appSettings节点下配置.如: 我们对应的代码是: = ConfigurationManage ...
- Web性能优化:What? Why? How?
为什么要提升web性能? Web性能黄金准则:只有10%~20%的最终用户响应时间花在了下载html文档上,其余的80%~90%时间花在了下载页面组件上. web性能对于用户体验有及其重要的影响,根据 ...
- Web性能优化:图片优化
程序员都是懒孩子,想直接看自动优化的点:传送门 我自己的Blog:http://cabbit.me/web-image-optimization/ HTTP Archieve有个统计,图片内容已经占到 ...
- 使用ServiceStack构建Web服务
提到构建WebService服务,大家肯定第一个想到的是使用WCF,因为简单快捷嘛.首先要说明的是,本人对WCF不太了解,但是想快速建立一个WebService,于是看到了MSDN上的这一篇文章 Bu ...
随机推荐
- easyUI datagraid的列排序
在给datagraid做多列排序时请注意: 首先,做的是后台排序,那么需要设置: remoteSort:'true', 然后,不要添加 multiSort:'true',这个是多列一起排序无法实现.. ...
- 亲测——pycharm下运行第一个scrapy项目 ©seven_clear
最近在学习scrapy,就想着用pycharm调试,但不知道怎么弄,从网上搜了很多方法,这里总结一个我试成功了的. 首先当然是安装scrapy,安装教程什么的网上一大堆,这里推荐一个详细的:http: ...
- Devexpress 汉化
DevExpress是一个比较有名的界面控件套件,提供了一系列的界面控件套件的DotNet界面控件.对于较老的版本(例如之前项目中遇到的dev9),对于汉化(应该说本地化Localization)支持 ...
- 看来System.dll是没法剔除依赖了
今天花了半天时间将System.Xml换成了Mono.Xml 想干掉System.dll发现不行了,System.Net以及System.IO都在这下面,还有protobuf-net也逃不掉这个 算啦 ...
- Firebird数据库的Select语句
select first 10 skip 8 * from t_data //跳过前8行不要,取10行,即取第9行到18行共10行 select first 10 * from t_data ...
- 看到shape文件可以加载到GOOGLE EARTH上的方法,有空可以试试
引用 Shape文件转为KMZ并在Google Earth中显示 (1)在ArcGIS中加载一个Shape文件,笔者加载的是某个地区的道路(双线道路)图层 (2)在ArcToolbox中,依次展开Co ...
- 图的邻接多重表和搜索(C++版本)
最近在学数据结构,学到图这一章,网上的C++版本的代码乱得不行,所以自己写了一个完整C++版本的放这里. 用邻接多重表表示一个无向图,并给出DFS和BFS搜索代码.邻接多重表好处就是贼直观,几条边就几 ...
- Android发展演变与开发环境搭建
本人也算是一名比较会玩的Android手机用户,常常关注Android发展的最新情况,并且每年都会熬夜看谷歌的I/O大会,总会第一时间刷入最新的Android版本.接下来简单谈一下Android版本的 ...
- Inno Setup 下载安装
Inno Setup 是一个免费的 Windows 安装程序制作软件.第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件. 目前 ...
- Linux环境下Oracle数据库启动停止命令
切换root至oracle数据库账号 su – oracle 查看数据库服务状态: ps -ef |grep oracle netstat –an|grep 1521 查看数据库监听状态: [orac ...