如果你还不防范用户输入,你的网站可能就要玩完了

记住:有用户输入的地方,就有可能有陷阱。

我只愿面朝大海,春暖花开。

↓↓↓

【Action】

只要功能不是太过单一的网站,就肯定会有需要用户输入的地方,即使是最简单的登录,也是需要用户输入的地方。

但是并不是每一个网站都对用户的输入进行了防范。

言外之意,用户的输入可能对网站的安全性构成威胁,这是怎么回事呢?

这就涉及到一个专业名词了:XSS。

▍XSS(360百科)

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

▍通俗来说

通俗点说,就是通过在css或者html里嵌入一些恶意的Javascript代码,从而实现恶意攻击的目的。

那么这些Javascript代码又是如何嵌入进去的呢?

▍XSS方式

1、 输入框中直接输入恶意脚本,如:

">

或者

2、输入框中输入html标签,在标签中嵌入恶意脚本,如src,href,css,style等。

XSS

3、将恶意脚本注入在event事件中,如onClick,onBlur,onMouseOver等事件。

xxslink

4、在remote style sheet,javascript中,如

5、meta标签,如

▍切记切记

用于不要把任何来自用户的内容放到下面这些地方:

script标签:

html注释:

标签名:

属性:

css值:

▍防范方法

网上防范XSS攻击的方法一搜就一大堆,但是无论方法有多少,始终是万变不离其宗。

1、转义用户的内容

a、HTML:对以下这些字符进行转义:

&:&

>:>

':'

":"

/:/

b、Javascript:把所有非字母、数字的字符都转义成小于256的ASCII字符;

c、URL:使用Javascript的encodeURIComponent()方法对用户的输入进行编码,该方法会编码如下字符:, / ? : @ & = + $ #

2、添加用户生成的内容

a、Javascript:使用textContent或者innerText,而不能使用innerHTML;

b、jquery:使用text(),而不能使用html();

▍我是尾巴

目前自己的个人博客也在创建中,博客可能会开通留言功能,这样的话英雄就有用武之地了。

↓↓↓

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180508G1L73I00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券