从后端角度看安全

这篇具有很好参考价值的文章主要介绍了从后端角度看安全。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

跨站脚本攻击(XSS)

什么是XSS

跨站脚本工具,全程是Cross Site Script,为了和CSS 区分,所以叫XSS。
XSS 攻击,通常指黑客通过HTML注入,来纂改了网页,插入恶意脚本。
人话就是把用户的数据当成了html代码的一部分来运行了
在线练习

反射型XSS
反射型XSS又称非持久型XSS,只是简单把用户输入的数据反射给浏览器

存储型XSS
存储型XSS又称持久型XSS

为什么注入了就能运行
url?name=<script>alert(1)</script>

<h2 align="center">欢迎用户:{{name}}</h2>

在jsp或者asp这类后端渲染的会出现xss
因为 后端会把值直接渲染,返回给浏览器

<h2 align="center">欢迎用户:<script>alert(1)</script></h2>

为什么现在vue或者现代化的前端框架中xss会很困难?

<h2 align="center">欢迎用户:{{name}}</h2>

在vue中插值相当于v-text也就是js中的outerText,只会当成文本处理

危害

你就 想象一下你的网站,别人在里面添加js代码,是不是内裤都给看穿了

  • 代理转发流经被攻击者的所有 Web 流量,即实施中间人攻击。
  • 窃取或篡改应用 cookie 用于会话劫持。
  • 钓鱼

危害很多只简单列几个

防御

1.输入检查
过滤<>等特殊字符,但是可能会改变程序的语义。

2.输出检查
使用安全的编码函数
html ->HemlEncode
javascript ->JavascriptEncode

3.使用现代化的前端框架
4.设置Http only
这样通过js脚本将无法读取到cookie信息,这样能有效的防止关于会话的XSS攻击。

CSRF

跨站点请求伪造(Cross Site Request Forgery)

什么是CSRF

我现在写了一个页面,页面里的逻辑是 请求B站注销账户,然后我把链接发给了你,你点开后,如果你最近登录了B站,那么你的账号就被注销了,这就是跨站点请求伪造

危害

CSRF一般都是产生写数据操作的url,因为CSRF过程中,攻击者是无法获得返回的数据的,所以读的操作对他没有意义。
危害显而易见,直接内库被看穿!
顺便说一下SSRF

预防

  • token
    因为token 不会被自动提交,前端在登录成功后在本地缓存token,然后在请求时在请求头中带上token,
    所以CSRF时并不会自动带上token

SSRF

服务端请求伪造(Server Site Request Forgery)

什么是SSRF

当我们服务端提供了从其它服务器应用获取数据的时候,坏银恶意使用该接口来代理攻击

危害

坏银使用恶意的url来访问本来访问不到的内网服务
例如:
公司的一个老接口,现在已被弃用!

    @ApiOperation(value = "图片-下载代理,解决跨越问题")
    @RequestMapping(path = "/download", method = RequestMethod.GET)
    public ResponseEntity<Resource> download(@RequestParam(value = "url") String url) throws IOException {
         String fileName = url.substring(url.lastIndexOf("/") + 1);
        byte[] bytes = IOUtils.toByteArray(new URL(url));
        ByteArrayResource resource = new ByteArrayResource(bytes);

        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Disposition", String.format("attachment;filename=\"%s", fileName));
        return ResponseEntity.ok()
                .headers(headers)
                .contentLength(bytes.length)
                .contentType(MediaType.APPLICATION_OCTET_STREAM)
                .body(resource);
    }

当我本地启动了一个服务时,使用postman请求
从后端角度看安全
从后端角度看安全
直接内裤被打穿!!

预防

  • 内网开启鉴权
  • 过滤内网服务ip
  • 只允许http和https协议访问

SQL注入

对于后端来说SQL 注入可以说非常熟悉了。

盲注

服务端关闭异常显示,攻击者通过注入条件语句来验证是否存在sql注入漏洞
荔枝:

http://path.com/item?id=1
后端sql: select * from user where id= 1

注入:

http://path.com/item?id=1 and 1=1
http://path.com/item?id=1 and 1=2

通过验证上述sql注入返回结果,来判断是否存在sql注入
(定时攻击)Timing Attack
有时 id 是比较复杂的如uuid,这时你就不能通过上面的梨子来盲注了

在mysql 中 BENCHMARK(count,expr) 用来测试函数执行count次,来查看耗时
因此 通过注入BENCHMARK来判断耗时是否有增加来判断是否存在SQL注入

预防

1.预编译
2.存储过程
存储过程中尽量不要使用动态SQL
3.检查数据类型

在使用数据库时应该严格 遵守最小权限原则。

XML注入

与HTML注入相似,解决方案也是类似,对用户输入中的保留字符进行转义即可

文件上传漏洞

什么是文件上传漏洞

文件上传漏洞是指用户上传了一个可执行的脚本文件。
触发条件:

  • 上传的文件能被web容器解析
  • 用户能访问到该文件

如果文件上传了,不能被用户访问到或者不能被web解析,那就说明这个这个脚本不会运行,所以就不算漏洞!!

预防

  1. 文件上传的目录设置为不可执行
    在实际业务中文件都放到了独立的存储系统中如OSS,一方面降低的系统的性能的损耗,也杜绝的执行漏洞

  2. 判断文件类型,结合MIME Type和文件后缀等,简单的通过后缀名称来判断文件的类型,是不安全的,

  3. 上传后修改文件名称和路径
    文件上传后,黑客想要执行它,就要先能访问到它,这样可以增加攻击成本

  4. 单独设置文件服务器域名
    因为同源策略,会导致大部分攻击失效,同源策略(协议相同,端口号相同,域名相同)是指未经允许的情况下,不能够访问其他域下的内容,如果没有同源限制,那么浏览器中的cookie等其他数据可以任意读取,不同域下的DOM任意操作,ajax任意请求其他网站的数据

拒绝服务

分布式拒绝服务

什么是分布式拒绝服务

分布式拒绝服务也就是 大家所熟知的DDOS (Distributed Denial of Service),利用合理的请求,来造成服务过载从而导致服务不可用!

DDOS分为 网络层和应用层

预防

这里的预防是预防应用层的DDOS

  • 使用钞能力,与运营商合作
  • 限制请求频率
  • 修改配置
    例如nginx 限制每秒请求数等
  • 性能优化
    • 将数据库压力转移到内存中,及时的释放资源
    • 负载均衡
    • CDN
  • 验证码
    虽然验证码,很影响体验,不过能有效的解决自动重放行为

正则攻击

MD正则写的不好,也会造成资源耗尽,从而拒绝服务。
正则的原理是基于NFA,就是个状态机,有缺陷的正则会消化大量的资源。

我是谁:没有绝对安全的系统

参考:
白帽子讲WEB安全文章来源地址https://www.toymoban.com/news/detail-494182.html

到了这里,关于从后端角度看安全的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【安全测试】Web应用安全之XSS跨站脚本攻击漏洞

    目录 前言 XSS概念及分类 反射型XSS(非持久性XSS) 存储型XSS(持久型XSS) 如何测试XSS漏洞 方法一: 方法二: XSS漏洞修复 原则:不相信客户输入的数据 处理建议 资料获取方法 以前都只是在各类文档中见到过XSS,也进行过相关的学习,但是都是一知半解,过了一段时间就忘了。

    2024年02月14日
    浏览(34)
  • web安全学习日志---xss漏洞(跨站脚本攻击)

      仅执行一次,非持久型。主要存在于攻击者将恶意脚本附加到url的参数中,发送给受害者,服务端未经严格过滤处理而输出在用户浏览器中,导致浏览器执行代码数据。 利用场景: 直接插入JS代码,修改url参数    攻 scriptalert(\\\'hack\\\')/script 防 $name=str_replace(\\\'script\\\', \\\'  \\\',$name

    2024年02月13日
    浏览(82)
  • 【读书笔记】《白帽子讲web安全》跨站脚本攻击

    目录 前言: 第二篇 客户端脚本安全 第3章 跨站脚本攻击(XSS) 3.1XSS简介 3.2XSS攻击进阶 3.2.1初探XSS Payload 3.2.2强大的XSS Payload 3.2.2.1 构造GET与POST请求 3.2.2.2XSS钓鱼 3.2.2.3识别用户浏览器 3.2.2.4识别用户安装的软件 3.2.2.5CSS History Hack 3.2.2.6获取用户的真实IP地址 3.2.3XSS攻击平台

    2024年02月02日
    浏览(40)
  • 浏览器基础原理-安全: 跨站脚本攻击(XSS)

    XSS 跨站脚本 (Cross Site Scripting): 概念: XSS 攻击是指黑客往 HTML 文件中或者 DOM 中注入恶意脚本,从而在用户浏览页面时利用注入的恶意脚本对用户实施攻击的一种手段。 实现方式: 起初,这种攻击通过跨域来实现的,所以叫“跨域脚本”。但是发展到现在,往 HTML 文件中注入恶

    2024年02月11日
    浏览(26)
  • 网络安全进阶学习第二课——XSS跨站脚本攻击

    首先了解什么是前端。前端从定义上来讲是指一个网站的前台部分,是展示给用户看的部分。它不需要关注任何业务之间的逻辑处理,只需要安安静静地做好自己,老老实实的把自己最美的一面展示给用户。 Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的

    2024年02月11日
    浏览(31)
  • 网络安全测试中的跨站点脚本攻击(XSS):Python和FlaskSecurity实现跨站脚本攻击测试

    作者:禅与计算机程序设计艺术 引言 1.1. 背景介绍 跨站点脚本攻击(XSS)是一种常见的网络安全漏洞,攻击者通过在受害者的浏览器上执行自己的脚本代码,窃取、修改用户的敏感信息。随着互联网的发展,跨站点脚本攻击在各类应用中愈发普遍。为了提高网络安全水平,

    2024年02月07日
    浏览(42)
  • 保护网站安全:学习蓝莲花的安装和使用,复现跨站脚本攻击漏洞及XSS接收平台

     这篇文章旨在用于网络安全学习,请勿进行任何非法行为,否则后果自负。  环境准备 攻击介绍 原理 攻击者通过向目标网站提交包含恶意脚本的请求,然后将该恶意脚本注入到响应页面中,使其他用户在查看包含注入恶意脚本的页面时运行该恶意脚本。 图片来源 使用方法

    2024年02月10日
    浏览(36)
  • 跨站脚本攻击XSS

    XSS又叫CSS (CrossSiteScript),因为与层叠样式表(css)重名,所以叫Xss,中文名叫跨站脚本攻击。 xss攻击,主要就是攻击者通过“html注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击方式。 危害 可以盗取用户Cookie 挂马(水坑攻击) 在用户经

    2024年02月15日
    浏览(42)
  • 跨站脚本攻击(XSS)

             XSS :Cross Site Scripting ,为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。在一开始的时候,

    2024年02月08日
    浏览(83)
  • 跨站脚本攻击(XSS)详解

    XSS(Cross Site Script)攻击,通常指黑客通过\\\"HTML注入\\\"篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。 一开始,这种攻击的演示案例是跨域的,所以叫做\\\"跨站脚本\\\"。现在是否跨域已经不再重要,但是名字一直沿用下来。 XSS长期以来被列

    2024年02月06日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包