做WEB开发的时候,前端与后端我们应该要注意哪些细节,哪些容易出现的漏洞?
写这篇文章的时候,我和团队正在处理项目漏洞问题,发现这些都是细节但又容易在项目实现的过程中忽视的部分,鉴于此,我想总结下来,方便以后出现类似问题能及时得到解决。
1、任意文件上传漏洞。
描述:允许用户上传任意文件可能让攻击者注入危险内容或恶意代码,并在服务器上运行。
利用:文件上传可以修改后缀导致可以上传任意文件,任意文件上传后都会返回SUCCESS成功。
方案:通过获取文件流对文件信息头部某些特殊的信息进行验证判断,这样及时想通过修改文件后缀也没法蒙骗过关。具体代码操作可参考这篇博文,
http://www.cnblogs.com/bojuetech/p/5907910.html
2、登陆密码明文传输
描述:登陆密码明文传输,cookie中密码CMD5可以解密。
利用:通过抓包工具抓包在cookie中发现明文传输的用户名和密码,其中密码可以通过CMD5解密,此漏洞造成了登陆信息泄露。
方案:①禁止将用户账号密码存入本地;
②后台加密增加阀值操作;
3、存储型跨站
描述:Web程序没有对攻击者提交的含有可执行代码的输入进行有效校验,在某些页面返回给访问改Web程序的任意用户,导致这些代码在用户的浏览器进行执行。
利用:允许攻击者注入危险内容或恶意代码
方案:1、在JAVASCRIPT中展示用户可控数据,需要对用户可控数据做转译
2、对用户输入的内容进行针对=mailto:~!@#$%^&*()_+|\=-{[}]:;"]~!#$%^&*()_+|\=-{[}]:;"'<,>.?/这些字符的过滤和替换
4、Cookie未作安全防护
描述:攻击者可利用xss等漏洞进行攻击获取用户cookie信息,并利用其cookie信息登录用户账户
利用:根据xss获取测试用户cookie信息,发现用户cookie没有httponly和其他安全防护。当用户退出登录时,重新发送登录时访问界面的数据包,可直接获取用户登录状态
方案:1、设置Cookie http only属性;
2、直接去掉登录页面的保存密码功能;
5、Apache tomcat版本信息泄露
描述:攻击者可从中的值apache tomcat的版本信息
利用:有经验的开发者或hacker们可以从 这些目录得知当前站点的信息,如开发语言、服务器系统、站点结构,甚至一些敏感的信息。并根据其版本信息及已知公开漏洞进行攻击
方案:对apche tomcat进行相关配置。
以上是基本漏洞,对于这些漏洞暂时现给出大概的描述,对于具体处理,后续会陆续推出具体解决思路与代码。
感谢支持!
做WEB开发的时候,前端与后端我们应该要注意哪些细节,哪些容易出现的漏洞?的更多相关文章
- 如何用Python做Web开发?——Django环境配置
用Python做Web开发,Django框架是个非常好的起点.如何从零开始,配置好Django开发环境呢?本文带你一步步无痛上手. 概念 最近有个词儿很流行,叫做“全栈”(full stack ...
- 做web开发和测试,修改hosts指定某个域名访问某个特定的IP后,如何使hosts立即生效的方法
本文转自SUN'S BLOG,原文地址:http://whosmall.com/post/143 hosts的配置方法: 在windows系统中,找到C:\windows\system32\drive ...
- 为什么做Web开发要选择PHP
大部分互联网公司做WEb开发都选择PHP,PHP的优势在哪?你应该知道的 以前偶尔被人问到,为什么你(和大部分互联网公司)做Web开发要选择PHP, PHP有什么好处.简单的回答便是“PHP简单,开发 ...
- PHP做Web开发的MVC框架(Smarty使用说明 )
PHP做Web开发的MVC框架(Smarty使用说明 ) 一.Smarty简明教程 1.安装演示 下载最新版本的Smarty-3.1.12,然后解压下载的文件.接下来演示Smarty自带的demo例子 ...
- web也是区分前端与后端的,session\cookie辨析
<1>Ajax交互方式 Ext.Ajax.request( { //被用来向服务器发起请求默认的url url : "", //请求时发送后台的参数,既可以是Json对 ...
- 想做web开发 就学JavaScript
有一天我被问到,为了快速地在 web 开发工作上增加优势,应该学习什么语言.我的思绪回到了大学,那时候我用 Pascal.Fortran.C和汇编语言,不过那个时候有不同的目标. 鉴于当前的状况和趋势 ...
- Python做web开发,推荐几个能立马上手的小项目
Python这门优美的语言是非常适合web开发的,基于Python的Django框架简单便捷且很强大. 那么作为新手该如何上手这门语言?一切不敲代码的学编程手段都是扯淡,今天就推荐一些适合新手练手的P ...
- 为什么说 C/C++ 不适合做 Web 开发?(成本高,容易出错,apache等工具分担了大部分工作)
因为大家在讨论用C#.Java,做出来的项目的时候,用C++的人们还在讨论语言特性 每种语言都有特定适用范围,对应着某类问题.web开发的重头戏不是计算,而是与用户交互和发送sql语句,当然以脚本语言 ...
- 做web开发需要学习哪些技术--基础篇
做一个web网站,包含哪些技术,自己需要学习哪些技术 自己想到哪里就写到哪里 -- 给自己做的一个记录 1: 页面的展示, 一个web的开发语言 1.1 一个web的开发语言需要注意哪方面,才能符合 ...
随机推荐
- java 27 - 1 反射之 类的加载器
说到反射,首先说类的加载器. 类的加载: 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. 加载: 就是指将class文件读入内存,并为之 ...
- noip模拟赛(一)密码
密码 (pasuwado.pas/c/cpp) [问题描述] 哪里有压迫,哪里就有反抗. moreD的宠物在法庭的帮助下终于反抗了.作为一只聪明的宠物,他打算把魔法使moreD的魔法书盗去,夺取mor ...
- understand一些功能
功能 支持分析的语言 统计总的代码数据 统计单个文件的数据 分析代码复杂度 分析代码格式 文件的依赖关系 文件夹依赖关系 文件夹包含关系.代码量 understand提供了很多图表,同时它可以根据源码 ...
- checkbox与jq<转>
题:经常使用jQuery插件的attr方法获取checked属性值,获取的值的大小为未定义,此时可以用prop方法获取其真实值,下面介绍这两种方法的区别: 1.通过prop方法获取checked属性, ...
- MathType 公式后的空格问题
注册表编辑器修改 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Design Science\DSMT6\WordC ...
- Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例
概要 前一章,我们学习了HashMap.这一章,我们对Hashtable进行学习.我们先对Hashtable有个整体认识,然后再学习它的源码,最后再通过实例来学会使用Hashtable.第1部分 Ha ...
- 转:如何在32位程序中突破地址空间4G的限制
//如何在32位程序中突破地址空间4G的限制 //首先要获得内存中锁定页的权限 #define _WIN32_WINNT 0x0501 //xp系统 #include <windows.h> ...
- 简单的js验证码
转自:未找到 <script type ="text/javascript" language ="javascript"> var cod ...
- .net RPC框架选型
近期开始研究分布式架构,会涉及到一个最核心的组件:RPC(Remote Procedure Call Protocol).这个东西的稳定性与性能,直接决定了分布式架构系统的好坏.RPC技术,我们的产品 ...
- 如何在 apache 中开启 gzip 压缩服务
服务器设置 gzip 压缩是 web 开发里很普遍的做法.假设你要请求一个 100k 的文件,网络传输速度为 50k/s,需要 2s 才能得到数据,但是如果在服务器设置了 gzip 压缩,将服务端的文 ...