前一段时间SEO禅介绍了WebPageTest这个网站测速 ,其中第一项分数就是安全测试,今天SEO禅就来分享一下关于如何防止网站被 跨站脚本XSS 攻击,首先还是老套路,做这件事之前我们要知道这东西是什么,XSS是Cross Site Scripting的英文缩写,不是应该是CSS吗?理论上是,但是CSS和我们HTML中的CSS样式一样缩写,后来我们都把XSS来表示跨站脚本攻击了。 什么是XSS? 简单举个例子,一个网站如果没有经过特殊处理防范,比如说有评论接口,或者说用户字段可以修改自己的资料,这些接口没有经过安全处理,用户输入的内容都会原样保存到数据库中,那这就成了安全漏洞,就可以被利用作为XSS攻击的切入点,怎么做到得?我们所看见的浏览器上的网页主要由3种语言脚本组成:HTML,JS,CSS俗称前端三剑客,其中JS的权限比较大,可以操控用户浏览器,甚至借助一些第三方支持,可以操控系统内容,所以就有人利用这个特点编写了一些本不应该执行和操作的JS脚本,用来窃取用户资料,或者进行一些破坏行为的操作。 XSS实现原理 上面已经介绍,XSS其实就是黑客利用网站漏洞,编写恶意JS代码进行破坏的操作,那这个是具体怎么实现的呢?SEO禅在这里简单介绍下,首先来看张图: 我们可以看到这里的 Client 1 向服务器提交了一段 <script>alert(1)</script> 的代码,这段代码是在评论界面插入的,而网站没有做任何安全过滤,直接插入到服务器数据库中,第二个用户访问同样的评论网页,就会跳出一个提示框,因为浏览器默认遇到 <script> 标记就会当作JS脚本代码去执行,这就达到了跨站脚本攻击的效果,跨站在这里的意思并不是说其它网站,而是对于第一个用户而言,他的攻击操作影响到访问这个网站的其他用户,就像 爱情跨越山河去遇见,来到你的面前一样。 如何防范XSS攻击 跨站脚本攻击XSS是最普遍的网站安全问题,SEO禅记得在2000年左右,那时候的脚本攻击非常鼎盛,打开浏览器访问网站,就可能遇到到处弹框的垃圾信息,其实就是很多网站被XSS了,虽然到了20年后的今天,大多数站长的安全防范意识还是不高,这种低级漏洞还是时有发生,那如何防范 跨站XSS 呢? 最简单的办法就是断绝危险源头,首先网站所有能写入数据库的操作,都要经过一次安全过滤,把含有JS脚本代码的文本全部进行 escape化 ,转义成无害的文本内容,在杜绝源头上做好还是不够,我们还要做的更好,通过使用WebpageTest测试工具我们可以看到安全得分中有一项 Content-Security-Policy : CSP翻译成中文叫内容安全策略,可以通过使用规则来告诉浏览器,什么来源的脚本可以执行,什么样的不可以执行,上面说的都还只是XSS中的一个方面,还要通过外部JS代码来进行跨站攻击的,而这种方式才是真正意义上的跨站脚本XSS攻击,在防止插入恶意脚本的基础上,我们还要防止网站引用外部脚本所带来的风险,这里就要设置相应规则,让浏览器不能运行不在白名单中的 外部JS脚本 ,实现方式有两种: 第一种通过Meta标签,告诉浏览器运行规则,如: 第二种通过Http Header信息,如: 这是写死在Apache配置文件中的代码,具体的语法可以参考MDN关于 的语法说明,篇幅有限SEO禅就不详细介绍,配置了这个策略有一个麻烦的地方就是,如果网页代码修改了,要加入新的脚本,发布部署新代码之后,都要修改 内容安全策略白名单 ,虽然是麻烦点,但是这种方式很安全,会省去很多日后的麻烦,也算是省事吧,自己见仁见智咯,这篇文章先分享到这,有什么不懂得可以给SEO禅评论留言,要是有什么错误可以指出讨论。 你可能想看: 2021网站服务器安全优化-跨站请求伪造攻击CSRF SEO禅在上一篇文章跨站脚本攻击XSS中介绍了客户端最常见的安全攻击漏洞,今天再来介绍一个同样很热门的一种攻击方法CSRF跨站请求伪造攻击,CSRF英文全称:cross-site request fo... 2021网站服务器安全优化-SQL注入攻击 为什么SEO禅的博客不像其他SEO同行,SEO公司一样都是说SEO的内容呢?因为想做好SEO优化可以很简单,也可以不简单,很简单的方法大家应该都知道,那就是用一些手段让排名暂时靠前,不简单是因为,真要... 网站服务器安全优化-CORS跨域资源共享 做过前端开发的小伙伴肯定会遇到下面这样报红的error经历: 如果没有遇到,那你就还需要多努力努力了,这个错误就是今天SEO禅要说的CORS(Cross-origin resource sharing... 怎样迁移网站服务器和域名? 想要迁移网站,内容不变,但域名不同,服务器也不同,该如何整站迁移又不影响排名和SEO? 怎样利用XSS漏洞在其它网站注入链接? 前两天曝出一个 Google蜘蛛存在的漏洞,可能被黑帽SEO利用XSS漏洞在别人网站注入链接。如果被大规模利用,显然是会影响权重流动和搜索排名的。 同一个服务器多个网站(虚拟主机)会影响SEO吗? 一个服务器下面有多个网站,且这些网站做的关键词基本都差不多,但架构内容都不一样,他们之间会相互影响SEO排名吗?搜索引擎(百度)会如何看待这些网站? 同一个服务器有多个网站对SEO有影响吗? 相信很多站长在开始建站的时候都有一个疑虑,那就是一个服务器上面放多个网站会不会影响到SEO优化效果?SEO禅帮企业做SEO优化的时候,基本都是推荐一个IP,一个服务器放一个网站,这样在优化网站排名的时... 亲密关系中的浪漫关系攻击:攻击、破坏关系的背后 在亲密关系中总会有许多“相爱相杀”的行为,这是一种“浪漫关系攻击”。 JS脚本与SEO优化 JS的SEO是近年越来越重要的问题。无论是异步调用内容,还是增加页面互动,现在的网站几乎无法避免使用JS脚本。但JavaScript使用不当可能会对SEO造成非常大的影响。 更改搜索引擎蜘蛛的抓取速度,避免占用太多服务器资源 正常情况下,我们做Google SEO当然是希望搜索引擎蜘蛛可以天天在你网站里面爬行抓取内容,但是如果你的服务器有资源限制,那么可能Google蜘蛛太频繁的抓取你网站会导致服务器资源耗尽,或者网站打开
2021网站服务器安全优化-跨站脚本攻击XSS
2024-07-05 | 浏览: 24
前一段时间SEO禅介绍了WebPageTest这个网站测速 ,其中第一项分数就是安全测试,今天SEO禅就来分享一下关于如何防止网站被 跨站脚本XSS 攻击,首先还是老套路,做这件事之前我们要知道这东西是什么,XSS是Cross Site Scripting的英文缩写,不是应该是CSS吗?理论上是,但是CSS和我们HTML中的CSS样式一样缩写,后来我们都把XSS来表示跨站脚本攻击了。
什么是XSS?简单举个例子,一个网站如果没有经过特殊处理防范,比如说有评论接口,或者说用户字段可以修改自己的资料,这些接口没有经过安全处理,用户输入的内容都会原样保存到数据库中,那这就成了安全漏洞,就可以被利用作为XSS攻击的切入点,怎么做到得?我们所看见的浏览器上的网页主要由3种语言脚本组成:HTML,JS,CSS俗称前端三剑客,其中JS的权限比较大,可以操控用户浏览器,甚至借助一些第三方支持,可以操控系统内容,所以就有人利用这个特点编写了一些本不应该执行和操作的JS脚本,用来窃取用户资料,或者进行一些破坏行为的操作。
XSS实现原理上面已经介绍,XSS其实就是黑客利用网站漏洞,编写恶意JS代码进行破坏的操作,那这个是具体怎么实现的呢?SEO禅在这里简单介绍下,首先来看张图:
我们可以看到这里的 Client 1 向服务器提交了一段
如何防范XSS攻击<script>alert(1)</script>
的代码,这段代码是在评论界面插入的,而网站没有做任何安全过滤,直接插入到服务器数据库中,第二个用户访问同样的评论网页,就会跳出一个提示框,因为浏览器默认遇到<script>
标记就会当作JS脚本代码去执行,这就达到了跨站脚本攻击的效果,跨站在这里的意思并不是说其它网站,而是对于第一个用户而言,他的攻击操作影响到访问这个网站的其他用户,就像 爱情跨越山河去遇见,来到你的面前一样。跨站脚本攻击XSS是最普遍的网站安全问题,SEO禅记得在2000年左右,那时候的脚本攻击非常鼎盛,打开浏览器访问网站,就可能遇到到处弹框的垃圾信息,其实就是很多网站被XSS了,虽然到了20年后的今天,大多数站长的安全防范意识还是不高,这种低级漏洞还是时有发生,那如何防范 跨站XSS 呢?
最简单的办法就是断绝危险源头,首先网站所有能写入数据库的操作,都要经过一次安全过滤,把含有JS脚本代码的文本全部进行 escape化 ,转义成无害的文本内容,在杜绝源头上做好还是不够,我们还要做的更好,通过使用WebpageTest测试工具我们可以看到安全得分中有一项 Content-Security-Policy :
CSP翻译成中文叫内容安全策略,可以通过使用规则来告诉浏览器,什么来源的脚本可以执行,什么样的不可以执行,上面说的都还只是XSS中的一个方面,还要通过外部JS代码来进行跨站攻击的,而这种方式才是真正意义上的跨站脚本XSS攻击,在防止插入恶意脚本的基础上,我们还要防止网站引用外部脚本所带来的风险,这里就要设置相应规则,让浏览器不能运行不在白名单中的 外部JS脚本 ,实现方式有两种:
第一种通过Meta标签,告诉浏览器运行规则,如:
第二种通过Http Header信息,如:
这是写死在Apache配置文件中的代码,具体的语法可以参考MDN关于 的语法说明,篇幅有限SEO禅就不详细介绍,配置了这个策略有一个麻烦的地方就是,如果网页代码修改了,要加入新的脚本,发布部署新代码之后,都要修改 内容安全策略白名单 ,虽然是麻烦点,但是这种方式很安全,会省去很多日后的麻烦,也算是省事吧,自己见仁见智咯,这篇文章先分享到这,有什么不懂得可以给SEO禅评论留言,要是有什么错误可以指出讨论。
2021网站服务器安全优化-跨站请求伪造攻击CSRF
SEO禅在上一篇文章跨站脚本攻击XSS中介绍了客户端最常见的安全攻击漏洞,今天再来介绍一个同样很热门的一种攻击方法CSRF跨站请求伪造攻击,CSRF英文全称:cross-site request fo...
2021网站服务器安全优化-SQL注入攻击
为什么SEO禅的博客不像其他SEO同行,SEO公司一样都是说SEO的内容呢?因为想做好SEO优化可以很简单,也可以不简单,很简单的方法大家应该都知道,那就是用一些手段让排名暂时靠前,不简单是因为,真要...
网站服务器安全优化-CORS跨域资源共享
做过前端开发的小伙伴肯定会遇到下面这样报红的error经历: 如果没有遇到,那你就还需要多努力努力了,这个错误就是今天SEO禅要说的CORS(Cross-origin resource sharing...
怎样迁移网站服务器和域名?
想要迁移网站,内容不变,但域名不同,服务器也不同,该如何整站迁移又不影响排名和SEO?
怎样利用XSS漏洞在其它网站注入链接?
前两天曝出一个 Google蜘蛛存在的漏洞,可能被黑帽SEO利用XSS漏洞在别人网站注入链接。如果被大规模利用,显然是会影响权重流动和搜索排名的。
同一个服务器多个网站(虚拟主机)会影响SEO吗?
一个服务器下面有多个网站,且这些网站做的关键词基本都差不多,但架构内容都不一样,他们之间会相互影响SEO排名吗?搜索引擎(百度)会如何看待这些网站?
同一个服务器有多个网站对SEO有影响吗?
相信很多站长在开始建站的时候都有一个疑虑,那就是一个服务器上面放多个网站会不会影响到SEO优化效果?SEO禅帮企业做SEO优化的时候,基本都是推荐一个IP,一个服务器放一个网站,这样在优化网站排名的时...
亲密关系中的浪漫关系攻击:攻击、破坏关系的背后
在亲密关系中总会有许多“相爱相杀”的行为,这是一种“浪漫关系攻击”。
JS脚本与SEO优化
JS的SEO是近年越来越重要的问题。无论是异步调用内容,还是增加页面互动,现在的网站几乎无法避免使用JS脚本。但JavaScript使用不当可能会对SEO造成非常大的影响。
更改搜索引擎蜘蛛的抓取速度,避免占用太多服务器资源
正常情况下,我们做Google SEO当然是希望搜索引擎蜘蛛可以天天在你网站里面爬行抓取内容,但是如果你的服务器有资源限制,那么可能Google蜘蛛太频繁的抓取你网站会导致服务器资源耗尽,或者网站打开