站点防止攻击

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代码将会被运行。

或者用户输入的是 
"onfocus="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 事件的标签。比如 "onclick=", "onfocus" 等等。

防止XSS,主要是:

一、用户自己

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

二、上面列出的五点。

2、sql注入攻击

防止sql注入方法:

一、用户注冊和登陆的时候输入的username和password的时候禁止有特殊字符。

二、最小权限原则。

三、假设使用的是java,则尽量使用PreparedStatement

3、...

时间: 2024-11-06 07:14:32

站点防止攻击的相关文章

【安全编码实践】保护自己免受跨站点脚本攻击

声明:本文由Bypass整理并翻译,仅用于安全研究和学习之用. 文章来源:https://medium.com/bugbountywriteup/how-to-write-secure-code-b2757b59cd4b 如何编写安全代码?保护自己免受跨站点脚本攻击! 过去几个月我一直致力于安全代码实践,我一直在努力与社区讨论易于采用的方法.我们每天看到的不安全代码的数量确实令人震惊,我们都同意“预防胜于治疗”. 保持我们的代码和应用程??序安全的最佳方法是从一开始就正确编程.编写安全代码并不困

跨站点端口攻击 – XSPA(SSPA)

许多Web应用程序提供的功能将数据从其他Web服务器,由于种种原因.下载XML提要,从远程服务器,Web应用程序可以使用用户指定的URL,获取图像,此功能可能会被滥用,使制作的查询使用易受攻击的Web应用程序作为代理运行在远程攻击其他服务的基于文本的文件等. /本地服务器.通过这种滥用而产生的功能被命名为攻击,跨站点端口的攻击(XSPA). XSPA(SSPA)是什么? 如果应用程序处理用户提供的URL和不验证/消毒后端从远程服务器接收到响应,然后将其发送回客户端应用程序是容易受到跨站点端口的攻

RailsCase27 Cross Site Scripting 跨站点脚本攻击

跨站点脚本是开发过程中经常需要考虑的安全问题.此种情形发生在允许用户直接输入html.javascript脚本时.在下述的website中,我们并没有过滤输入的内容,导致一些安全漏洞. 如果在输入框中输入由<script>包围的内容,当页面被加载的时候,脚本将被执行,每次均将在前端展示.例如,如果输入<script>alert('hello')</script>并保存,每次浏览此页面时,都将看到alert的窗口. 嵌入页面的javascript脚本如下: termina

跨站点脚本攻击(XSS)

XSS分类: (1)反射型XSS:只是简单地把用户输入的数据反射给浏览器.往往需要诱使用户"点击"一个恶意链接.也叫"非持久型XSS" (2)存储型XSS:把用户输入的数据"存储"在服务器端.也叫"持久型XSS" (3)DOM Based XSS:从效果上来说也是反射型XSS,通过修改页面的DOM结点形成的XSS. 1.cookie劫持:httponly或者将cookie和客户端IP绑定可防止 2.XSSPayload: (1

跨站点脚本攻击

介绍 XSS是跨站脚本攻击(Cross Site Scripting)的缩写.XSS是因为有些恶意攻击者往Web页面中插入恶意Script代码,当用户浏览该页面时,嵌入的Script代码将会被执行,从而达到恶意攻击用户的特殊目的. 条件 攻击者需要向web页面注入恶意代码: 这些恶意代码能够被浏览器成功的执行. 类型 XSS反射型攻击,恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击的,攻击是一次性的. XSS存储型攻击,恶意代码被保存到目标网站的服务器中,这

6个常见的 PHP 安全性攻击

了解常见的PHP应用程序安全威胁,可以确保你的PHP应用程序不受攻击.因此,本文将列出 6个常见的 PHP 安全性攻击,欢迎大家来阅读和学习. 1.SQL注入 SQL注入是一种恶意攻击,用户利用在表单字段输入SQL语句的方式来影响正常的SQL执行.还有一种是通过system()或exec()命令注入的,它具有相同的SQL注入机制,但只针对shell命令. 01 $username = $_POST['username']; 02 $query = "select * from auth wher

SQL 注入、XSS 攻击、CSRF 攻击

SQL 注入.XSS 攻击.CSRF 攻击 SQL 注入 什么是 SQL 注入 SQL 注入,顾名思义就是通过注入 SQL 命令来进行攻击,更确切地说攻击者把 SQL 命令插入到 web 表单或请求参数的查询字符串里面提交给服务器,从而让服务器执行编写的恶意的 SQL 命令. 对于 web 开发者来说,SQL 注入已然是非常熟悉的,而且 SQL 注入已经生存了 10 多年,目前已经有很成熟的防范方法,所以目前的 web 应用都很少会存在漏洞允许进行 SQL 注入攻击. 除非是入门开发人员,在开发

web安全 -- 常见攻击方法及预防措施

一.sql注入 sql注入,是指攻击者在猜测出服务器上要执行sql后:通过输入数据,拼接原来要执行的sql而形成新的sql:从而到达改变原来查询的意义的目的. -- 原来sql select xxx from table_x where id = $id; -- 用户输入数据 $id = '1 or 1=1' -- 拼接后sql select xxx from table_x where id = 1 or 1=1 实质问题: 在于简单地混合代码和用户数据.原则上代码和用户数据要严格分离,用户数

[译]作为一个web开发人员,哪些技术细节是在发布站点前你需要考虑到的

前日在cnblogs上看到一遍文章<每个程序员都必读的12篇文章>,其中大多数是E文的. 先译其中一篇web相关的"每个程序员必知之WEB开发". 原文: http://programmers.stackexchange.com/questions/46716/what-technical-details-should-a-programmer-of-a-web-application-consider-before 问:对于一个web开发人员来说,在发布一个站点之前,他需