1,xss :
因为和css 冲突,改名字是xss,属于客户端攻击,网站管理员也是用户,攻击者盗取管理员的cookie,靠管理员身份作为“跳板”进行实施攻击。
XSS攻击最终目的是在网页中嵌入客户端恶意脚本代码,最常用的攻击代码是javascript语言,但也会使用其它的脚本语言
j avascript语言:是跨平台的,在jsp,php,asp,aspx,都可以使用
xss 用的脚本是可以构造的,有两千多种方法,要记者常用的函数就行 script, alert, img src
1.2 XSS漏洞出现的原理:
程序对输入和输出的参数控制不严格,导致攻击者可以构造恶意代码,在前端直接执行,从而产生危害
如果对输出的参数进行html 进行实体编码 >就没了,不能弹窗,
新建文件2.php
浏览器运行
1.3 XSS的危害:
劫持用户cookie
框架钓鱼:钓鱼就是把链接发给别人,等让别人点击
挂马
键盘记录
2. XSS分类:
反射型XSS:交互的数据一般不会被存在在数据库里面,只是简单的把用户输入的数据反射给浏览器,一次性,所见即所得。
?name=1
没有对输出的参数进行过滤,输入什么就会再服务的显示出来
?name= ‘“> 是万能的闭合方法
显示对话框内容为6666 script是 javascrip 的语言开始和结束, alert 是显示的意思
储存型XSS:交互的数据会被存在在数据库里面,永久性存储,具有很强的稳定性,用户点击的时候再一次被执行
’">
再次点击留言还会接着上面的窗口
交互的数据会被存在在数据库里,用户点击的时候再一次被执行
把代码放入与数据交互的配置文件,只要有人点击这个首页就会执行木马
DOM XSS:
当页面被加载的时候,会创建一个文档对象模型,是一个DOM 数,浏览器产生的,可以忽略,但是教科书上有
不与后台服务器产生数据交互,通过前端的dom节点形成的XSS漏洞
what do you see? herf 连接地址,#号就是没有来连接,点击的时候则显示后面的谈篡改语句
再点击生成的连接 ,窗口才会弹出来
3. XSS漏洞可能存在的地方:不需要与数据库交互,漏洞会更多
输入的地方,输出的地方,所有带有参数的地方,插入script代码进去,能弹窗就说明有漏洞
3.1 XSS测试方法:
工具:APPscan、AWVS、Burpsuit 等
AWVS
搜出来的win3 的 xss漏洞怎么去验证: 有大小写是为了绕过waf
去包有 9170 回包也有9170 就证明有这个漏洞,就是说明它弹窗了,只不过这里是以代码的形式展示出来了
浏览器验证:
找到这个漏洞,点开,出现详细信息:
host 的IP 加上get 的参数代码,吧编码换成alert函数,浏览器去查询
把192.168.131.135/down.asp?id="> 中的7wRi 改为xss 的函数 alert,浏览器复制打开
192.168.131.135/down.asp?id=">
看是否会弹窗,确认是否存在漏洞
半自动化工具:
Burpsuite、firefox(hackbar)、XSSER XSSF等
手工:最重要的是考虑那里有输入,输入的数据在什么地方输出
只用看一行代码;有一个代码字典两千多个,可以挂bp字典去跑,
如果alert 这个函数被禁了?要用什么函数?
常用的函数:script, alert, img src
4.xss 的测试方法:
4.1 盗取cookie: 属于高危漏洞,
可能实现盗取用户名和密码,同一个网站,同一个后台,他的cckie 是一致的
就是用户再点击留下的连接时获取到的cookie
先更改 配置文件的IP和端口更改,改为攻击者的地址,用户点击时用户信息保存到攻击者的网站上
想要获取用户的cookie信息,首先要搭建一个存储信息的xss平台,这里是已经搭建好的平台
存储型xss留言板输入攻击者的代码: &submit=submit 提交按钮
填入的是攻击者建的 xss 平台地址,正常是在公网服务器上,后面是自己平台的配置文件,
'">
改xss平台上面的IP和上面代码里面一样
当别人点击存储型xss留言板是就会触发这个xss 漏洞。就会获取点击人的cookie
代码输入以后会自动跳转到首页,再打开也还是首页
只要用户输入参数,就能获取到用户的cookie了(用户名和密码,), 哪个IP点击的,从哪个页面进入的漏洞,盗取的只是当前页cookie
cookie 怎么利用,用bp 抓包把用户的cookie 替换上去,刷新放包,就能登录他的页面了
http://192.168.131.135:99/pikachu/install.php
从新安装一次,把之前的留言删掉,要不然是登录不上去的
盲打 :一个网站只要能输入参数的地方都放入攻击者的xss代码
'">
根据提示输入路径
输入路径,进入到了管理员的页面 输入账号和密码 正常就会进入到默认后台页面!
在cookie.php 里面构造,可以达到隐蔽性更强,
用管理员的cookie 登录以后显示的就是管理员的账户和密码,md5 加密,可以用MD5 解密
普通用户登录
用bp 抓包把管理员的cookie 替换上去,刷新放包,就能登录管理员的页面了
批量替换:代理,选项,搜索与替换 set cookie 就会一直用他的身份
xss 的攻击图
2。反射型 post
要在post提交 里面插入,缺点:要把页面发给别人,别人点到这个页面才行
bp 抓包
http://192.168.131.135:99/post.html
要在xss平台构造更改这个文件
路径 D:\phpStudy\WWW\pikachu\pkxss\xcookie\post.html 下面的路径记得改对,这里就没改
用户点击提交的时候就回来连接post 这个地址
要把post 变成html文件改
form 来自哪个网址的
document.loation 是xss 获取的cookie的存储路径
更改配置文件以后放在桌面双击它会出来一个网页,双击html 文件的时候,就是里面的文件实行了自动化
正常是点开会跳到输入参数的地方,放入代码(高版本不支持的话,就把地址复制放在win3 的浏览器运行)
对画框有输入的地方输入代码
xss放入进去以后后会跳转到首页
这是查看xss 里面存的数据,已经在里面了,这就是反射型post 注入,就是生成一个网页别人点击以后,输入信息,就会得到她的cookie
3.框架钓鱼
src 钓鱼用的地址,挂马就放入挂马的地址,
首先修改xss里的钓鱼用的配置文件:配置得IP和路径一定要核对正确
有参数得地方输入xss 代码
111'">
带击提交以后就会弹出一个对话框,可以输入用户名密码,就会保存他的cookie到xss平台上面,
要想让对话框再次弹出来,就要把浏览器cookie删掉,从新登陆
清除cookie
看钓鱼结果,高版本浏览器不行,就试试低版本得浏览器
4.xss 键盘记录获取 就是记录别人键盘敲入得所有东西,必须要满足跨域访问,不然是实现不了得
键盘记录必须要同域《三个条件都一样就是同域》
(1)、什么是跨域 要加一行代码才可以跨域访问(协议 子域名 主域名)有一个地方不一样就是跨域
http:// www. oldboyedu.com :80 / news/index.php
协议 子域名 主域名 端口 资源地址
(2)、同源策略 跨域不能访问就是因为同源策略
为了安全考虑,所有浏览器ie Google 360 等都约定了“同源策略”,就是禁止页面加载或执行与自身来源不同的域的任何脚本既不同域之间不能使用JS进行操作。
比如:x.com域名下的js不能操作y.com域名下的对象
那么为什么要有同源策略? 比如一个恶意网站的页面通过js嵌入了银行的登录页面(二者不同源),如果没有同源限制,恶意网页上的javascript脚本就可以在用户登录银行的时候获取用户名和密码
Tips:下面这些标签跨域加载资源是不受同源策略限制的
然后在键盘上随意输入,就可以到xss平台上去查看键盘输入的结果
查询出来得结果,最后一次是输入代码以后,在那个页面的所有得键盘记录,退出那个页面就没有记录了,没有结果,高版本浏览器不行,就试试低版本得浏览器
5.XSS盲打 就是不管有没有漏洞,看到有输入得地方就插代码,等别人或者管理员进去这个页面,输入用户名和密码时,就会记录它得cookie,传到我的xss平台上面
XSS盲打就是攻击者在前端提交的数据不知道后台是否存在xss漏洞的情况下,提交恶意JS代码在类似留言板等输入框后,所展现的后台位置的情况下,网站采用了攻击者插入的恶意代码,当后台管理员在操作时就会触发插入的恶意代码,从而达到攻击者的目的。
管理员后台: http://http://192.168.0.101/pikachu/vul/xss/xssblind/admin_login.php
111'">
输入代码以后并不会弹窗出来,
管理员登录时就会中招,cookie就被我获取到了,我就可以用他的账号密码登录
八、XSS绕过 过滤是没办法彻底解决问题得,怎么都能绕过
大多数网站为了避免xss的攻击,对于攻击者的输入都采取了过滤的措施,导致攻击者通常不能正常插入恶意代码来达到攻击目的。但是仍存在一些漏洞可以利用,来绕过过滤措施。
xss绕过的方法有许多,主要取决于攻击者的思路和对前端技术的掌握,以下介绍几个简单的绕过方法。
'">
(1)对前端的限制可以尝试进行抓包重发或者修改前端的HTML。
(2)防止后台对输入的内容进行正则匹配来过滤输入,对于这样的过滤可以考虑大小写混合输入的方法。
放入代码没有弹出对话框,是因为程序员把代码过滤掉了,看看代码是怎么过滤的
replace 替换函数 把后面的符号都替换成了 空
例:
函数做大小写从新输入就ok啦
(3)防止后台对输入的内容进行替换,采用拼拼凑的输入方法。
例:ript>alert('你打篮球像oldboy')ipt>
(4)使用注释来干扰后台对输入内容的识别。!注释的意思
例:ript>alert('你打篮球像oldboy')ipt>
(5)编码
思路:后台有可能会对代码中的关键字进行过滤,但我们可以尝试将关键字进行编码后在插入,浏览器对改编码进行识别时,会翻译成正常的代码。(注意:编码在输出时是否会被正常识别和翻译才是关键,不是所有的编码都是可以的)
例:使用事件属性onerror():
换标签script 为 img src 也是可以的
使用HTML进行编码:
就是把要输入得代码进行bets64编码绕过,也可以
xss 得各种漏洞代码,函数,标签,编码得,
九、XSS绕过之htmlspecialchars()函数 htmlspeciaic 实体编码函数,很厉害!专门针对xss得
htmlspecialchars()函数把一些预定义的字符转换为 HTML 实体。
预定义的字符是:
& (和号)成为 &
" (双引号)成为 "
’ (单引号)成为'
< (小于)成为 <
>(大于)成为 >
该函数的语法:htmlspecialchars(string,flags,character-set,double_encode)
过滤原理:htmlspecialchars() 函数把预定义的字符转换为 HTML 实体,从而使XSS攻击失效。但是这个函数默认配置不会将单引号和双引号过滤,只有设置了quotestyle规定如何编码单引号和双引号才能会过滤掉单引号
可用的quotestyle类型:
ENT_COMPAT - 默认。仅编码双引号
ENT_QUOTES - 编码双引号和单引号
ENT_NOQUOTES - 不编码任何引号
可使用以下语句绕过: q' οnclick='alert(111)'
先看设置文件是怎么设置函数得 ENT_COMPAT - 默认。仅编码双引号
q' οnclick='alert(111)' ’ 闭合 onclick 语法 ='alert 显示 (111 内容 )'
xss之href输出绕过:
javascript:alert(1111) 直接代入a标签herf里面一样可以绕过htmlspecialchars
ENT_QUOTES - 编码双引号和单引号
但是message 直接赋值给了变量,并且有a标签,和‘ 这时候可以用a表签执行
工作中不会有这样环境,这里是为了实验,才把message写入a 标签
javascript:alert(1111) 没有单引号和双引号得xss 在标签执行 也是 看输出到哪个代码,看情况
xss之js输出绕过:
先查看源代码,
;
if($ms.length != 0){
if($ms == 'tmac'){
$('#fromjs').text('tmac确实厉害,看那小眼神..')
}else {
// alert($ms);
$('#fromjs').text('无论如何不要放弃心中所爱..')
}
}
------------------
如果是上面script 得代码就直接用 ' 绕过
2' 先闭和前面得
xss之js输出:输入代码回车 就会出来
十。XSS常规防范
XSS防御的总体思路是:对输入进行过滤,对输出进行编码
就是过滤掉常用得标签,并且对输出进行编码
过滤:根据业务需求进行过滤,比如输出点要求输入手机号,则只允许输入手机号格式的数字。
不要随意过滤,不只是过滤符号,和函数
转义:所有输出到前端的数据都根据输出点进行转义,比如输出到html中进行html实体转义,输入到JS里面的进行JS转义(\)
1,xss :
因为和css 冲突,改名字是xss,属于客户端攻击,网站管理员也是用户,攻击者盗取管理员的cookie,靠管理员身份作为“跳板”进行实施攻击。
XSS攻击最终目的是在网页中嵌入客户端恶意脚本代码,最常用的攻击代码是javascript语言,但也会使用其它的脚本语言
j avascript语言:是跨平台的,在jsp,php,asp,aspx,都可以使用
xss 用的脚本是可以构造的,有两千多种方法,要记者常用的函数就行 script, alert, img src
1.2 XSS漏洞出现的原理:
程序对输入和输出的参数控制不严格,导致攻击者可以构造恶意代码,在前端直接执行,从而产生危害
如果对输出的参数进行html 进行实体编码 >就没了,不能弹窗,
新建文件2.php
浏览器运行
1.3 XSS的危害:
劫持用户cookie
框架钓鱼:钓鱼就是把链接发给别人,等让别人点击
挂马
键盘记录
2. XSS分类:
反射型XSS:交互的数据一般不会被存在在数据库里面,只是简单的把用户输入的数据反射给浏览器,一次性,所见即所得。
?name=1
没有对输出的参数进行过滤,输入什么就会再服务的显示出来
?name= ‘“> 是万能的闭合方法
显示对话框内容为6666 script是 javascrip 的语言开始和结束, alert 是显示的意思
储存型XSS:交互的数据会被存在在数据库里面,永久性存储,具有很强的稳定性,用户点击的时候再一次被执行
’">
再次点击留言还会接着上面的窗口
交互的数据会被存在在数据库里,用户点击的时候再一次被执行
把代码放入与数据交互的配置文件,只要有人点击这个首页就会执行木马
DOM XSS:
当页面被加载的时候,会创建一个文档对象模型,是一个DOM 数,浏览器产生的,可以忽略,但是教科书上有
不与后台服务器产生数据交互,通过前端的dom节点形成的XSS漏洞
what do you see? herf 连接地址,#号就是没有来连接,点击的时候则显示后面的谈篡改语句
再点击生成的连接 ,窗口才会弹出来
3. XSS漏洞可能存在的地方:不需要与数据库交互,漏洞会更多
输入的地方,输出的地方,所有带有参数的地方,插入script代码进去,能弹窗就说明有漏洞
3.1 XSS测试方法:
工具:APPscan、AWVS、Burpsuit 等
AWVS
搜出来的win3 的 xss漏洞怎么去验证: 有大小写是为了绕过waf
去包有 9170 回包也有9170 就证明有这个漏洞,就是说明它弹窗了,只不过这里是以代码的形式展示出来了
浏览器验证:
找到这个漏洞,点开,出现详细信息:
host 的IP 加上get 的参数代码,吧编码换成alert函数,浏览器去查询
把192.168.131.135/down.asp?id="> 中的7wRi 改为xss 的函数 alert,浏览器复制打开
192.168.131.135/down.asp?id=">
看是否会弹窗,确认是否存在漏洞
半自动化工具:
Burpsuite、firefox(hackbar)、XSSER XSSF等
手工:最重要的是考虑那里有输入,输入的数据在什么地方输出
只用看一行代码;有一个代码字典两千多个,可以挂bp字典去跑,
如果alert 这个函数被禁了?要用什么函数?
常用的函数:script, alert, img src
4.xss 的测试方法:
4.1 盗取cookie: 属于高危漏洞,
可能实现盗取用户名和密码,同一个网站,同一个后台,他的cckie 是一致的
就是用户再点击留下的连接时获取到的cookie
先更改 配置文件的IP和端口更改,改为攻击者的地址,用户点击时用户信息保存到攻击者的网站上
想要获取用户的cookie信息,首先要搭建一个存储信息的xss平台,这里是已经搭建好的平台
存储型xss留言板输入攻击者的代码: &submit=submit 提交按钮
填入的是攻击者建的 xss 平台地址,正常是在公网服务器上,后面是自己平台的配置文件,
'">
改xss平台上面的IP和上面代码里面一样
当别人点击存储型xss留言板是就会触发这个xss 漏洞。就会获取点击人的cookie
代码输入以后会自动跳转到首页,再打开也还是首页
只要用户输入参数,就能获取到用户的cookie了(用户名和密码,), 哪个IP点击的,从哪个页面进入的漏洞,盗取的只是当前页cookie
cookie 怎么利用,用bp 抓包把用户的cookie 替换上去,刷新放包,就能登录他的页面了
http://192.168.131.135:99/pikachu/install.php
从新安装一次,把之前的留言删掉,要不然是登录不上去的
盲打 :一个网站只要能输入参数的地方都放入攻击者的xss代码
'">
根据提示输入路径
输入路径,进入到了管理员的页面 输入账号和密码 正常就会进入到默认后台页面!
在cookie.php 里面构造,可以达到隐蔽性更强,
用管理员的cookie 登录以后显示的就是管理员的账户和密码,md5 加密,可以用MD5 解密
普通用户登录
用bp 抓包把管理员的cookie 替换上去,刷新放包,就能登录管理员的页面了
批量替换:代理,选项,搜索与替换 set cookie 就会一直用他的身份
xss 的攻击图
2。反射型 post
要在post提交 里面插入,缺点:要把页面发给别人,别人点到这个页面才行
bp 抓包
http://192.168.131.135:99/post.html
要在xss平台构造更改这个文件
路径 D:\phpStudy\WWW\pikachu\pkxss\xcookie\post.html 下面的路径记得改对,这里就没改
用户点击提交的时候就回来连接post 这个地址
要把post 变成html文件改
form 来自哪个网址的
document.loation 是xss 获取的cookie的存储路径
更改配置文件以后放在桌面双击它会出来一个网页,双击html 文件的时候,就是里面的文件实行了自动化
正常是点开会跳到输入参数的地方,放入代码(高版本不支持的话,就把地址复制放在win3 的浏览器运行)
对画框有输入的地方输入代码
xss放入进去以后后会跳转到首页
这是查看xss 里面存的数据,已经在里面了,这就是反射型post 注入,就是生成一个网页别人点击以后,输入信息,就会得到她的cookie
3.框架钓鱼
src 钓鱼用的地址,挂马就放入挂马的地址,
首先修改xss里的钓鱼用的配置文件:配置得IP和路径一定要核对正确
有参数得地方输入xss 代码
111'">
带击提交以后就会弹出一个对话框,可以输入用户名密码,就会保存他的cookie到xss平台上面,
要想让对话框再次弹出来,就要把浏览器cookie删掉,从新登陆
清除cookie
看钓鱼结果,高版本浏览器不行,就试试低版本得浏览器
4.xss 键盘记录获取 就是记录别人键盘敲入得所有东西,必须要满足跨域访问,不然是实现不了得
键盘记录必须要同域《三个条件都一样就是同域》
(1)、什么是跨域 要加一行代码才可以跨域访问(协议 子域名 主域名)有一个地方不一样就是跨域
http:// www. oldboyedu.com :80 / news/index.php
协议 子域名 主域名 端口 资源地址
(2)、同源策略 跨域不能访问就是因为同源策略
为了安全考虑,所有浏览器ie Google 360 等都约定了“同源策略”,就是禁止页面加载或执行与自身来源不同的域的任何脚本既不同域之间不能使用JS进行操作。
比如:x.com域名下的js不能操作y.com域名下的对象
那么为什么要有同源策略? 比如一个恶意网站的页面通过js嵌入了银行的登录页面(二者不同源),如果没有同源限制,恶意网页上的javascript脚本就可以在用户登录银行的时候获取用户名和密码
Tips:下面这些标签跨域加载资源是不受同源策略限制的
然后在键盘上随意输入,就可以到xss平台上去查看键盘输入的结果
查询出来得结果,最后一次是输入代码以后,在那个页面的所有得键盘记录,退出那个页面就没有记录了,没有结果,高版本浏览器不行,就试试低版本得浏览器
5.XSS盲打 就是不管有没有漏洞,看到有输入得地方就插代码,等别人或者管理员进去这个页面,输入用户名和密码时,就会记录它得cookie,传到我的xss平台上面
XSS盲打就是攻击者在前端提交的数据不知道后台是否存在xss漏洞的情况下,提交恶意JS代码在类似留言板等输入框后,所展现的后台位置的情况下,网站采用了攻击者插入的恶意代码,当后台管理员在操作时就会触发插入的恶意代码,从而达到攻击者的目的。
管理员后台: http://http://192.168.0.101/pikachu/vul/xss/xssblind/admin_login.php
111'">
输入代码以后并不会弹窗出来,
管理员登录时就会中招,cookie就被我获取到了,我就可以用他的账号密码登录
八、XSS绕过 过滤是没办法彻底解决问题得,怎么都能绕过
大多数网站为了避免xss的攻击,对于攻击者的输入都采取了过滤的措施,导致攻击者通常不能正常插入恶意代码来达到攻击目的。但是仍存在一些漏洞可以利用,来绕过过滤措施。
xss绕过的方法有许多,主要取决于攻击者的思路和对前端技术的掌握,以下介绍几个简单的绕过方法。
'">
(1)对前端的限制可以尝试进行抓包重发或者修改前端的HTML。
(2)防止后台对输入的内容进行正则匹配来过滤输入,对于这样的过滤可以考虑大小写混合输入的方法。
放入代码没有弹出对话框,是因为程序员把代码过滤掉了,看看代码是怎么过滤的
replace 替换函数 把后面的符号都替换成了 空
例:
函数做大小写从新输入就ok啦
(3)防止后台对输入的内容进行替换,采用拼拼凑的输入方法。
例:ript>alert('你打篮球像oldboy')ipt>
(4)使用注释来干扰后台对输入内容的识别。!注释的意思
例:ript>alert('你打篮球像oldboy')ipt>
(5)编码
思路:后台有可能会对代码中的关键字进行过滤,但我们可以尝试将关键字进行编码后在插入,浏览器对改编码进行识别时,会翻译成正常的代码。(注意:编码在输出时是否会被正常识别和翻译才是关键,不是所有的编码都是可以的)
例:使用事件属性onerror():
换标签script 为 img src 也是可以的
使用HTML进行编码:
就是把要输入得代码进行bets64编码绕过,也可以
xss 得各种漏洞代码,函数,标签,编码得,
九、XSS绕过之htmlspecialchars()函数 htmlspeciaic 实体编码函数,很厉害!专门针对xss得
htmlspecialchars()函数把一些预定义的字符转换为 HTML 实体。
预定义的字符是:
& (和号)成为 &
" (双引号)成为 "
’ (单引号)成为'
< (小于)成为 <
>(大于)成为 >
该函数的语法:htmlspecialchars(string,flags,character-set,double_encode)
过滤原理:htmlspecialchars() 函数把预定义的字符转换为 HTML 实体,从而使XSS攻击失效。但是这个函数默认配置不会将单引号和双引号过滤,只有设置了quotestyle规定如何编码单引号和双引号才能会过滤掉单引号
可用的quotestyle类型:
ENT_COMPAT - 默认。仅编码双引号
ENT_QUOTES - 编码双引号和单引号
ENT_NOQUOTES - 不编码任何引号
可使用以下语句绕过: q' οnclick='alert(111)'
先看设置文件是怎么设置函数得 ENT_COMPAT - 默认。仅编码双引号
q' οnclick='alert(111)' ’ 闭合 onclick 语法 ='alert 显示 (111 内容 )'
xss之href输出绕过:
javascript:alert(1111) 直接代入a标签herf里面一样可以绕过htmlspecialchars
ENT_QUOTES - 编码双引号和单引号
但是message 直接赋值给了变量,并且有a标签,和‘ 这时候可以用a表签执行
工作中不会有这样环境,这里是为了实验,才把message写入a 标签
javascript:alert(1111) 没有单引号和双引号得xss 在标签执行 也是 看输出到哪个代码,看情况
xss之js输出绕过:
先查看源代码,
;
if($ms.length != 0){
if($ms == 'tmac'){
$('#fromjs').text('tmac确实厉害,看那小眼神..')
}else {
// alert($ms);
$('#fromjs').text('无论如何不要放弃心中所爱..')
}
}
------------------
如果是上面script 得代码就直接用 ' 绕过
2' 先闭和前面得
xss之js输出:输入代码回车 就会出来
十。XSS常规防范
XSS防御的总体思路是:对输入进行过滤,对输出进行编码
就是过滤掉常用得标签,并且对输出进行编码
过滤:根据业务需求进行过滤,比如输出点要求输入手机号,则只允许输入手机号格式的数字。
不要随意过滤,不只是过滤符号,和函数
转义:所有输出到前端的数据都根据输出点进行转义,比如输出到html中进行html实体转义,输入到JS里面的进行JS转义(\)