详解程序员常用的3大Web安全漏洞防御解决方案:XSS、CSRF及SQL注入
随着互联网的普及,网络安全变得越来越重要,程序员需要掌握最基本的web安全防范,下面列举一些常见的安全漏洞和对应的防御措施。
一 常见的Web安全问题
1.前端安全
XSS 漏洞
CSRF 漏洞
2.后端安全
SQL 注入漏洞
二 XSS漏洞
1.XSS简介
跨站脚本(cross site script)简称为XSS,是一种经常出现在web应用中的计算机安全漏洞,也是web中最主流的攻击方式。XSS是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去,使别的用户访问都会执行相应的嵌入代码。
2.XSS攻击的危害
盗取用户资料,比如:登录帐号、网银帐号等;
利用用户身份,读取、篡改、添加、删除数据等;
盗窃重要的具有商业价值的资料;
非法转账;
强制发送电子邮件;
网站挂马;
控制受害者机器向其它网站发起攻击。
3.防止XSS解决方案
XSS的根源主要是没完全过滤客户端提交的数据 ,所以重点是要过滤用户提交的信息。
将重要的cookie标记为http only, 这样的话js 中的document.cookie语句就不能获取到cookie了.
只允许用户输入我们期望的数据。 例如:age用户年龄只允许用户输入数字,而数字之外的字符都过滤掉。
对数据进行Html Encode 处理: 用户将数据提交上来的时候进行HTML编码,将相应的符号转换为实体名称再进行下一步的处理。
过滤或移除特殊的Html标签, 例如:过滤js事件的标签。例如 “onclick=”, “onfocus” 等等。
三 CSRF攻击(跨站点请求伪造)
1.CSRF简介
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。
XSS主要是利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求,来利用受信任的网站。与XSS攻击相比,CSRF更具危险性。
2.CSRF攻击的危害
主要的危害来自于,攻击者盗用用户身份,发送恶意请求。比如:模拟用户发送邮件,发消息,以及支付、转账等。
3.防止CSRF的解决方案
- 重要数据交互采用POST进行接收,当然是用POST也不是万能的,伪造一个form表单即可破解。
- 使用验证码,只要是涉及到数据交互就先进行验证码验证,这个方法可以完全解决CSRF。但是出于用户体验考虑,网站不能给所有的操作都加上验证码。因此验证码只能作为一种辅助手段,不能作为主要解决方案。
- 验证HTTP Referer字段,该字段记录了此次HTTP请求的来源地址,最常见的应用是图片防盗链。
- 为每个表单添加令牌token并验证。
四 SQL注入漏洞
1.简介
SQL注入是比较常见的网络攻击方式之一,主要是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,实现无帐号登录,甚至篡改数据库。
2.SQL注入的危害
- 数据库信息泄漏:数据库中存放的用户的隐私信息的泄露;
- 网页篡改:通过操作数据库对特定网页进行篡改;
- 数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改;
- 服务器被远程控制,被安装后门;
- 删除和修改数据库表信息。
3.SQL注入的方式
- 通常情况下,SQL注入的位置包括:
- 表单提交,主要是POST请求,也包括GET请求;
- URL参数提交,主要为GET请求参数;
- Cookie参数提交;
- HTTP请求头部的一些可修改的值,比如Referer、User_Agent等。
举一个简单的例子,select from user where id=100 ,表示查询id为100的用户信息,如果id=100变为 id=100 or 2=2,sql将变为:select from user where id=100 or 2=2,将把所有user表的信息查询出来,这就是典型的sql注入。
4.防止SQL注入的解决方案
- 对用户的输入进行校验,使用正则表达式过滤传入的参数;
- 使用参数化语句,不要拼接sql,也可以使用安全的存储过程;
- 不要使用管理员权限的数据库连接,为每个应用使用权限有限的数据库连接;
- 检查数据存储类型;
- 重要的信息一定要加密。
总之就是既要做好过滤与编码并使用参数化语句,也要把重要的信息进行加密处理,这样SQL注入漏洞才能更好的解决。
-----------------------------------end--------------------------------------
【mikechen优知】往期博文:
分布式消息系列:详解RocketMQ的简介与演进、架构设计、关键特性与应用场景
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【直播预告】阿里专家断岭:当Spring Boot遇上Arthas—深入细节和排查问题的实践
主讲人:断岭(阿里巴巴中间件技术专家)本名:陈志轩,花名:断岭来自阿里巴巴中间件技术团队的程序员 - 断岭,他是阿里微服务开源项目 Dubbo 的项目组成员,也是Java线上诊断开源项目 Arthas 的负责人。 负责7K+应用,100K+机器的Spring Boot微服务技术落地,关注开发体验,微服务,APM,应用诊断技术。Dubbo/Arthas开源。 点击关注断岭的云栖社区个人主页 内容概要:使用Arthas深入Spring Boot的细节,并且排查Spring Boot问题的实践。 直播时间:2019年1月16日 周三 今晚20:00 直播地点:【阿里Java技术进阶】钉钉群 详情请看下方图片: 想看免费直播的提前扫码入群,或点击link入群: http://tb.cn/gXRstIw 相关文章:点击《史上最大Java群已经诞生啦 ~
- 下一篇
边缘节点服务ENS重磅升级 阿里云首次定义“边缘云计算”概念层层深入
随着5G、物联网时代的到来以及云计算应用的逐渐增加,传统集中式的云计算技术已经无法满足终端侧“大连接,低时延,大带宽”的需求。结合边缘计算的概念,云计算将必然发展到下一个技术阶段,也就是将云计算的能力拓展至距离终端更近的边缘侧,并通过云边端的统一管控实现云计算服务的下沉,提供端到端的云服务。如此,边缘云计算的概念也随之产生了。为了积极引导边缘云计算技术和应用发展,以及边缘云计算相关标准化的制定,阿里云和中国电子技术标准化研究院联合发布《边缘云计算技术与标准化白皮书》,在业界首次从标准的角度明确定义了”边缘云计算“的概念。 业内首次定义的“边缘云计算”究竟是什么? 边缘云计算,简称边缘云,是基于云计算技术的核心和边缘计算的能力,构筑在边缘基础设施之上的云计算平台。形成边缘位置的计算、网络、存储、安全等能力全面的弹性云平台,并与中心云和物
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS关闭SELinux安全模块
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路