php XSS攻击原理与防御
来源:互联网 发布:软件研发部 考核指标 编辑:程序博客网 时间:2024/05/16 09:09
数据安全是软件设计中要考虑的问题,在程序中保持数据的安全,除了保证代码内部运行的可靠,最主要就是严格控制外部数据,秉持一切用户输入的都是不可靠的原则,做好数据的验证和过滤.
PHP最简单的过滤机制就是转义,对用户的输入和输出进行转义和过滤.
我们先搞一个例子:
下面是一个很简单的表单
<form action="" method="post"> 留言:<textarea name="content" rows="20" cols="40"></textarea> <input type="submit" value="提交"> </form> <?php echo $_POST['content']; ?>
在文本区域内输入
<style>body{background:#000}</style>
点击提交,会发现浏览器除了输入框外都变成黑色的.查看页面源代码,会发现是因为原样地输出了css代码.这其实就是XSS攻击
XSS攻击百度百科:
XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中
XSS攻击当然不是我们这里所写的添加CSS样式代码这么低端.它可以做到很多危害
1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
3、盗窃企业重要的具有商业价值的资料
4、非法转账
5、强制发送电子邮件
6、网站挂马
7、控制受害者机器向其它网站发起攻击
最简单地处理以上的问题,只需要在接受数据处理的时候用上过滤函数htmlspecialchars,这个函数会把代码中的特殊字符转义成HTML实体,输出的时候就不会影响页面了
<?php echo htmlspecialchars($_POST['content']); ?>
还有一种方法是直接过滤掉html标签,这里要用到正则表达式
<?php // echo htmlspecialchars($_POST['content']); $rege = '/<\/?[^>]+>/'; $result = preg_replace($rege,"",$_POST['content']); echo $result; ?>
PHP提供了一个内置的strip_tags函数可以出去字符串中HTML和PHP标签,仅保留参数中指定的标签
<?php $str = '<p>Test parjlkasdf </p><a href="#test">Other text</a>'; echo strip_tags($str); echo "</br>"; echo strip_tags($str,'<p> <a>');//允许p标签和a标签 ?>
- php XSS攻击原理与防御
- PHP防御XSS攻击
- XSS攻击与防御
- XSS攻击与防御
- XSS攻击与防御
- XSS攻击与防御
- xss攻击与防御
- XSS攻击与防御
- XSS攻击与防御
- XSS攻击与防御方法
- XSS常见攻击与防御
- 跨站脚本攻击(XSS)——常见网站攻击手段原理与防御
- XSS攻击与防御(来自cnblog)
- XSS与CSRF攻击防御概念
- XSS攻击防御
- XSS攻击及防御
- XSS攻击及防御
- XSS攻击以及防御
- LINUX学习——LINUX文件结构
- 83. Remove Duplicates from Sorted List
- 非局部神经网络(Non-local Neural Networks)
- xml文件中的一些符号转义
- linux下mycat安装使用
- php XSS攻击原理与防御
- 【Scikit-Learn 中文文档】最近邻
- Unity3D开发之遇上Dropdown
- Configure Linux kernel source
- 【Scikit-Learn 中文文档】十一:朴素贝叶斯
- @media多媒体类型
- 四种方式实现Flex页面跳转
- 查看网络图片的地址
- 正点原子精英版stm32f103zet6开发板,实惠开卖