网站防止攻击

网站防止攻击1、什么是XSSXSS又叫CSS(CrossSiteScript),跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常呼略其危害性。跨站脚本攻击最大的魅力是通过HTML注入劫持用户的浏览器,任意构造用户当前浏览的HTM

大家好,又见面了,我是你们的朋友全栈君。

1、什么是XSS

XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常呼略其危害性。

跨站脚本攻击最大的魅力是通过HTML注入劫持用户的浏览器,任意构造用户当前浏览的HTML内容,甚至可以模拟用户当前的操作。

XSS 是如何发生的呢?

假如有下面一个textbox

<input type="text" name="address1" value="value1from">

value1from是来自用户的输入,如果用户不是输入value1from,而是输入“/><script>alert(document.cookie)</script><!- 那么就会变成

<input type="text" name="address1" value=""/><script>alert(document.cookie)</script><!- ">

嵌入的JavaScript代码将会被执行。

或者用户输入的是  “οnfοcus=”alert(document.cookie)      那么就会变成

<input type="text" name="address1" value="" onfocus="alert(document.cookie)">

事件被触发的时候嵌入的JavaScript代码将会被执行。

攻击的威力,取决于用户输入了什么样的脚本。

XSS之所以会发生, 是因为用户输入的数据变成了代码。 所以我们需要对用户输入的数据进行HTML Encode处理。 将其中的”中括号”, “单引号”,“引号” 之类的特殊字符进行编码。

网站防止攻击

XSS 漏洞修复

原则: 不相信客户输入的数据
注意:  攻击代码不一定在<script></script>中

  1. 将重要的cookie标记为http only,   这样的话Javascript 中的document.cookie语句就不能获取到cookie了.
  2. 只允许用户输入我们期望的数据。 例如: 年龄的textbox中,只允许用户输入数字。 而数字之外的字符都过滤掉
  3. 对数据进行Html Encode 处理
  4. 过滤或移除特殊的Html标签, 例如: <script>, <iframe> , &lt; for <, &gt; for >, &quot for
  5. 过滤JavaScript 事件的标签。例如 “οnclick=”, “onfocus” 等等。

 

防止XSS,主要是:

一、用户自己

用户可以忽略一个网站到另一个网站的链接:比如说,如果A网站链接到somerandomsite.com/page,那么你如果先要上这个网站,最好不要去直接点击该链接,而是通过搜索功能去查找该网站。这种方法可有效防止嵌入在链接网址中的XSS攻击,但是这种方法用起来不太方便,而且当两个网站共享内容时就没办法用了。另外一种方法是在你的浏览器中禁用像JavaScript脚本语言。即便因此可能会让一些网站上的一些很不错的功能没法使用,只要你还能够容忍就行。

二、上面列出的五点。

2、sql注入攻击

防止sql注入方法:

一、用户注册和登陆的时候输入的用户名和密码的时候禁止有特殊字符。

二、最小权限原则。

三、如果使用的是java,则尽量使用PreparedStatement

3、…

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162081.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 完成端口与线程池的关系_端口触发

    完成端口与线程池的关系_端口触发关于IOCP网上到处都是资料,说的也很详细。我在这里就不再多说了,这只是本人在学习IOCP时的笔记,和配合AcceptEx写的一个极小的服务端程序。由于刚刚接触ICOP加上本人刚毕业不到一年,所以里面的理解或观点可能有误,还请大家多多批评!        VC6.0开发,旨在体现IOCP的架构,忽略细节,服务程序的功能只是接收客户连接,接着接收到客户数据,然后原封不动的返回给客户! 

    2022年9月29日
    4
  • 影视3D建模和游戏3D建模差异,哪个更有前景?

    影视3D建模和游戏3D建模差异,哪个更有前景?影视3D建模和游戏3D建模,两者之间最大和最明显的差异是:游戏开发永远有多边形建模预算。影视建模方面,对于多边形数量都没有限制。对于电影来说,唯一限制是时间,按时,按预算生产合格的模型。游戏建模设计不能随意增加多边形面数,必须依靠纹理细节提升模型的质量。由于多边形数量必须很低,需要其他方法将更多细节放入模型中,目前最好的方法当然是使用纹理。游戏建模设计技术游戏中经常使用的技术是细节层次。意味单个游戏会有几个不同的细节级别。玩家离模型越远,资产的细节就越少。随着玩家越来越近,较低分辨率模型将被.

    2022年5月19日
    57
  • mysql 客户端_推荐一个好用的mysql的客户端工具?

    MySQL作为一个非常流行的关系型数据库,客户端软件其实非常多,下面我简单介绍几个,感兴趣的朋友可以尝试一下:Navicat这是一个比较常用的MySQL客户端软件,界面简洁、功能强大,可以直接查看数据库目录结构,建库建表也非常容易,支持SQL脚本导入导出、数据备份恢复及建模设计等,对于日常管理和维护MySQL数据库来说,是一个非常不错的工具:DBeaver这是一个非常有名的通用数据库管理…

    2022年4月4日
    66
  • YUI中js的继承示例

    YUI中js的继承示例无标题文档一个简单的例子。在这个例子中,可以看到,用var定义的私有变量,是不能被继承的。所有能被继承的,一定是通过this关键字,在内在地址中和这个对象的地址捆在一起的变量。因为复合对象传的不是值

    2022年7月4日
    21
  • Navicat for Mysql连接数据库时遇到10038错误

    Navicat for Mysql连接数据库时遇到10038错误使用Navicat for MySQl访问mysql数据库,出现报错,显示“2003- Cant connect MySQL Server on localhost(10038)“。原因:3306端口未对外开放。解决方案: 方法一:我的电脑右键—&gt;管理—&gt;服务和应用程序—&gt;服务—&gt;在里面找到Mysql—&gt;右键启动…

    2022年6月13日
    40
  • PriorityQueue 解析

    PriorityQueue 解析Java1.5版本后就提供了一个具备了小根堆性质的数据结构也就是优先队列PriorityQueue。//PriorityQueue默认是一个小顶堆,然而可以通过传入自定义的Comparator函数来实现大顶堆。实际上是一个堆(不指定Comparator时默认为最小堆)队列既可以根据元素的自然顺序来排序,也可以根据 Comparator来设置排序规则。队列的头是按指定排序方式的最小元素…

    2022年5月1日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号