zoukankan      html  css  js  c++  java
  • PHP防XSS攻击

    XSS攻击

    什么是XSS攻击

    代码实例:

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title>XSS原理重现</title>

    </head>

    <body>

    <form action="" method="get">

    <input type="text" name="xss_input">

    <input type="submit">

    </form>

    <hr>

    <?php

    $xss = $_GET['xss_input'];

    echo '你输入的字符为<br>'.$xss;

    // echo '你输入的字符为<br>'."<script>alert('xss')</script>";

    ?>

    </body>

    </html>

    注意:如果要表单提交数据到自己页面,action就设置为空

    如果我们在表单中输入的是"<script>alert('xss')</script>",那么,我们接收到的结果就是

    echo '你输入的字符为<br>'."<script>alert('xss')</script>";

    于是就弹出了alert框,相当于就修改了程序。除了这些,还能制造其他麻烦,刷新或重定向,损坏网页或表单,窃取cookieAJAX(XMLHttpRequest)

    注意:有些浏览器自身可以识别简单的XSS攻击字符串,从而阻止简单的XSS攻击;例如chrom,我在chrom中做实验的时候,就会自动阻止,但猎豹浏览浏览器就不行。

    XSSCross Site Scripting)攻击的全称是跨站脚本攻击,跨站脚本攻击的方式是恶意攻击者在网页中嵌入恶意脚本程序,当用户打开网页的时候脚本程序便在客户端执行,盗取客户的cookie及用户名和密码,下载执行病毒及木马程序,甚至获得客户端的admin权限等。

    预防XSS攻击

    从根本上说,解决办法是消除网站的XSS漏洞,这就需要网站开发者运用转义安全字符等手段,始终把安全放在心上。

    简单点,就是过滤从表单提交来的数据,使用php过滤函数就可以达到很好的目的。

    htmlspecialchars() 函数

    代码实例:

    <?php  

    if (isset($_POST['name'])){  

        $str = trim($_POST['name']);  //清理空格  

        $str = strip_tags($str);   //过滤html标签  

        $str = htmlspecialchars($str);   //将字符内容转化为html实体  

        $str = addslashes($str);  //防止SQL注入

        echo $str;  

    }  

    ?>  

    <form method="post" action="">  

    <input name="name" type="text">  

    <input type="submit" value="提交" >  

    </form> 

    htmlspecialchars() 函数相当于单引号的功能,不会进行解释,你输入什么就是什么,和防SQL注入很类似。

    函数详解:http://www.runoob.com/php/func-string-htmlspecialchars.html

  • 相关阅读:
    函数式宏定义与普通函数
    linux之sort用法
    HDU 4390 Number Sequence 容斥原理
    HDU 4407 Sum 容斥原理
    HDU 4059 The Boss on Mars 容斥原理
    UVA12653 Buses
    UVA 12651 Triangles
    UVA 10892
    HDU 4292 Food
    HDU 4288 Coder
  • 原文地址:https://www.cnblogs.com/douflamingo-666/p/8965022.html
Copyright © 2011-2022 走看看