Web安全

作者: 我不信这样也重名 | 来源:发表于2019-01-24 14:27 被阅读0次

XSS攻击


一、什么是XSS攻击

XSS攻击又称CSS,全称Cross Site Script (跨站脚本攻击),其原理是攻击者向有XSS漏洞的网站中输入恶意的 HTML 代码,当用户浏览该网站时,这段 HTML 代码会自动执行,从而达到攻击的目的。XSS 攻击类似于 SQL 注入攻击,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在XSS攻击中,通过插入恶意脚本,实现对用户游览器的控制,获取用户的一些信息。 XSS是 Web 程序中常见的漏洞,XSS 属于被动式且用于客户端的攻击方式。

二、eval()有什么问题

eval函数的作用是在当前作用域中执行一段JavaScript代码字符串,如下代码段:

var foo = 1;
function test() {
    var foo = 2;
    eval('foo = 3');
    return foo;
}
test(); // 3
foo; // 1

但是 eval 只在被直接调用并且调用函数就是 eval 本身时,才在当前作用域中执行
以下代码段就不属于对于eval的直接调用了:

var foo = 1;
function test() {
    var foo = 2;
    var bar = eval;
    bar('foo = 3');
    return foo;
}
test(); // 2
foo; // 3

上面的代码等价于在全局作用域中调用 eval:

// 写法一:直接调用全局作用域下的 foo 变量
var foo = 1;
function test() {
    var foo = 2;
    window.foo = 3;
    return foo;
}
test(); // 2
foo; // 3
 
// 写法二:使用 call 函数修改 eval 执行的上下文为全局作用域
var foo = 1;
function test() {
    var foo = 2;
    eval.call(window, 'foo = 3');
    return foo;
}
test(); // 2
foo; // 3

eval 存在安全问题,因为它会执行任意传给它的代码, 在代码字符串未知或者是来自一个不信任的源时,绝对不要使用 eval 函数。因此在任何情况下我们都应该避免使用 eval 函数。99.9% 使用 eval 的场景都有不使用 eval 的解决方案。

三、有什么防范措施

  1. 利用 php htmlentities()函数对传入参数的非法的 HTML 代码包括单双引号等进行转义。但是,中文情况下, htmlentities() 却会转化所有的 html 代码,连同里面的它无法识别的中文字符也给转化了。
  2. 利用 php htmlspecialchars()函数对传入参数的非法的 HTML 代码包括单双引号等进行转义,需要注意的是第二个参数默认是 ENT_COMPAT,函数默认只是转化双引号("),不对单引号(')做转义。更多的时候要加上第二个参数,应该这样用 : htmlspecialchars($string,ENT_QUOTES)对单双引号都进行转义。如果需要不转化任何的引号第二个参数使用ENT_NOQUOTES。
  3. 通过正则表达式过滤传入参数的html标签来防范XSS攻击。

CSRF攻击


一、什么是CSRF攻击

CSRF (Cross Site Request Forgery)攻击,中文名为跨站请求伪造
其原理是攻击者构造网站后台某个功能接口的请求地址,诱导用户去点击或者用特殊方法让该请求地址自动加载。用户在登录状态下这个请求被服务端接收后会被误以为是用户合法的操作。对于 GET 形式的接口地址可轻易被攻击,对于 POST 形式的接口地址也不是百分百安全,攻击者可诱导用户进入带 Form 表单可用POST方式提交参数的页面

二、有什么防范措施

  1. 在指定表单或者请求头的里面添加一个随机值做为参数
  2. 在响应的cookie里面也设置该随机值
  3. 用户在正常提交表单的时候会默认带上表单中的随机值,浏览器会自动带上cookie里面的随机值,那么服务器下次接受到请求之后就可以取出两个值进行校验
  4. 而对于攻击网站来说,攻击网站在提交表单的时候不知道该随机值是什么,所以就形成不了攻击

Https


Https原理图
https实际上就是在TCP层与http层之间加入了SSL/TLS来为上层的安全保驾护航,主要用到对称加密、非对称加密、证书等技术进行客户端与服务器的数据加密传输,最终达到保证整个通信的安全性。
详细解读

相关文章

  • web安全

    1、初步认识web安全:` - 安全与安全圈 - web应用与web安全的发展 - web安全隐患与本质...

  • 小猿圈Web安全性测试介绍

    相信大家对于Web安全很陌生,现在很多人对于web安全更是没有听过,那么你知道web安全吗?那么你知道Web安全性...

  • web安全测试文章

    Web安全测试漏洞场景 web安全性测试用例 验证码的测试用例分析 WEB安全测试的类型 Web安全测试中常见逻辑...

  • web安全(web应用安全)

    摘自极客学院 甲方和乙方: 甲方:腾讯阿里等,需要安全服务的公司 乙方:提供安全服务、产品而服务型安全公司(绿盟、...

  • web前端安全的攻与防

    一、什么是web安全? web安全,也叫web应用安全,《白帽子讲Web安全》一书中第一章最后有这么一句话讲的很好...

  • 小猿圈解析Web安全之如何制定学习计划

    去年开始web安全热度逐渐上升,web安全工程师成为炙手可热的人才之一,web安全的火热造成了很多朋友都在自学,但...

  • 浏览器安全

    浏览器安全可以分为三大块——Web 页面安全、浏览器网络安全和浏览器系统安全 Web 页面安全 为确保页面安全,浏...

  • web安全

    XSS 是什么?如何防范 CSRF是什么?如何防范

  • web安全

  • Web安全

    发布自Kindem的博客,欢迎大家转载,但是要注意注明出处。另外,该文章收纳在Kindem的个人的 IT 知识整理...

网友评论

      本文标题:Web安全

      本文链接:https://www.haomeiwen.com/subject/tjuyjqtx.html