程序员需要掌握基本的web安全知识,防患于未然,你们知道有多少种web安全漏洞吗?这里不妨列举10项吧,你们可以自己去网站找相应的教程来提升自己的1、命令注入(Command Injection)2、eval注入(Eval Injection)3、客户端脚本攻击(Script Insertion)4、跨网站脚本攻击(Cross Site Scripting, XSS)5、SQL注入攻击(SQL injection)6、跨网站请求伪造攻击(Cross Site Request Forgeries, CSRF)7、Session 会话劫持(Session Hijacking)8 Session 会话固定(Sessionfixation)9、HTTP响应拆分攻击(HTTP Response Splitting)10、文件上传漏洞(File Upload Attack)

这篇文章主要给大家介绍最经常遇到的3个:XXS,CSRF, SQL注入。一、XSS漏洞1.XSS简介
XSS(Cross Site Scripting),意为跨网站脚本攻击,为了和样式表css(Cascading Style Sheet)区别,缩写为XSS。攻击者主要使用跨站点脚本来读取Cookie或网站用户的其他个人数据。 一旦攻击者获得了这些数据,他就可以假装是该用户登录网站并获得该用户的权限。2.跨站点脚本攻击的一般步骤
1,攻击者以某种方式将xss http链接发送给目标用户
2.目标用户登录该网站并打开攻击者在登录过程中发送的xss链接。
3.网站执行了这个xss攻击脚本
4.目标用户页面跳转到攻击者的网站,攻击者获得了目标用户的信息
5.攻击者使用目标用户的信息登录网站以完成攻击3. XSS攻击的危险
1.窃取用户信息,例如登录帐户,网上银行帐户等。
2.使用用户身份读取,篡改,添加,删除公司敏感数据等
3.重要商业价值数据的盗窃
4.非法转移
5.强制电子邮件
6.网站挂马
7,控制受害者的机器对其他网站发起攻击

4.防止XSS解决方案
1)XSS的根本原因是客户端提交的数据未完全过滤,因此重点是过滤用户提交的信息。
2)将重要的cookie标记为http only,因此js中的document.cookie语句将不会获取cookie。
3)仅允许用户输入我们期望的数据。 例如:年龄 age只允许用户输入数字,数字外的字符被过滤掉。
4)对数据进行Html编码处理:当用户提交数据时,将其进行HTML编码,并且在下一次处理之前,将相应的符号转换为实体名称。
5)过滤或删除特殊的HTML标签,例如:

xxs漏洞危害_PHP开发中经常遇到的Web安全漏洞防御详解相关推荐

  1. Node.js中的不安全跳转如何防御详解

    为什么80%的码农都做不了架构师?>>>    Node.js中的不安全跳转如何防御详解 导语: 早年在浏览器大战期间,有远见的Chrome认为要运行现代Web应用,浏览器必须有一个 ...

  2. Android开发中内存、内部存储、外部存储详解

    手机是有两个内存的.2G和16G同时出现在一个手机中,2G是指运行内存,16G是指存储内存. 手机的内存,分两种,一个是存储内存,相当于电脑的硬盘,一般手机参数里超过4G的都是指这个.存储内存是可以扩 ...

  3. STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解)

    目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...

  4. gzdeflate函数_PHP中的gzcompress、gzdeflate、gzencode函数详解

    这篇文章主要介绍了PHP中的gzcompress.gzdeflate.gzencode函数详解,本文深入分析了它们的相同点和不同点,需要的朋友可以参考下 PHP中存在一组看起来很像的压缩解压函数: 压 ...

  5. java8 方法引用详解_Java8中如何通过方法引用获取属性名详解

    前言 在我们开发过程中常常有一个需求,就是要知道实体类中Getter方法对应的属性名称(Field Name),例如实体类属性到数据库字段的映射,我们常常是硬编码指定 属性名,这种硬编码有两个缺点. ...

  6. 四.卡尔曼滤波器(EKF)开发实践之四: ROS系统位姿估计包robot_pose_ekf详解

    本系列文章主要介绍如何在工程实践中使用卡尔曼滤波器,分七个小节介绍: 一.卡尔曼滤波器开发实践之一: 五大公式 二.卡尔曼滤波器开发实践之二:  一个简单的位置估计卡尔曼滤波器 三.卡尔曼滤波器(EK ...

  7. new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解

    new Date将字符串转化成日期格式 兼容IE,ie8如何通过new Date将字符串转化成日期格式,js中如何进行字符串替换, replace() 方法详解 //获得年月日时分秒 //传入日期// ...

  8. java 串口 dtr rts_串口(RS232 RS485等)通讯中RTS/CTS,DTR/DSR的含义详解

    串口(RS232 RS485等)通讯中RTS/CTS,DTR/DSR的含义详解 先贴出缩写的含义: DTR – Data Terminal Ready DSR – Data Set Ready RTS ...

  9. IOS开发环境更换后重新制作Provisioning Profile证书详解

    IOS开发环境更换后重新制作Provisioning Profile证书详解 新换了台Macbook,又折腾了一遍Provisioning Profile证书,苹果的证书繁锁复杂,每次制作都相当麻烦, ...

最新文章

  1. Spring Boot 实现万能文件在线预览
  2. 谷歌大幅削减其应用商店服务费
  3. SharpDevelop源码分析笔记(一)
  4. JavaScript 仿LightBox内容显示效果
  5. c语言输入6名学生5门课程的成绩,求解输入10个学生5门课的成绩,分别用函数实现下列功能:...
  6. Mac pycharm flask 用内网ip 运行 web
  7. OpenGL6-纹理动画
  8. bzoj千题计划181:bzoj1878: [SDOI2009]HH的项链
  9. Java基础十一--多态
  10. MySQL 5.7.18的安装与主从复制
  11. 完全卸载go语言编译器
  12. 手机号码正则 中文姓名正则
  13. 成立1年的水母智能,AI智能设计生意做得如何?
  14. causalml安装记录
  15. 华为CANN训练营笔记——应用开发全流程 [5](with 代码版)
  16. ubuntu 14.04.5 firefox 浏览器flash插件安装
  17. 解决 zbrush导出的模型在blender里没有颜色的问题
  18. Docker-windows使用教程
  19. element ui 的 el-tab 当使用 router-view 时 mounted 执行了多次
  20. app inventor入门详细教程(音乐播放器)01

热门文章

  1. 下划线间隔数字 排序_面试必备:经典算法动画解析之希尔排序
  2. android升级异常,升级AndroidX遇到的问题
  3. mysql elt interval_mysql 区间分组 interval,elt 的运用
  4. linux的can通信busoff,socketCAN内核源码分析是否支持busoff自恢复--Apple的学习笔记
  5. mysql 前n个最大值_MySQL varchar计算:求列的数目和计算N的最大值
  6. 北海哪里可以学计算机编程,编程真的很难吗?为什么会认为学编程难?
  7. gets函数用不了_函数篇:指数函数
  8. 与ceph的区别_Ceph分布式存储高性能设计
  9. C语言指针年龄段分组,[问题]数字分组求和,当和最大的组与和最小的组差最小时,输出...
  10. centos下安装mysql5.5_CentOS下安装Mysql5.5