zoukankan      html  css  js  c++  java
  • 在web开发中你不得不注意的安全验证问题#2-XSS

    前言


    XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。

    恶意攻击者往Web页面里插入恶意html代码。当用户浏览该页之时,嵌入当中Web里面的html代码会被运行,从而达到恶意攻击用户的特殊目的。

    环境准备


    和前几次一样,还是用PHP来做演示吧。由于XSS的产生是伴随着输入和输出的,所以自己随便写了个留言板的小应用。

    可能写的不是非常完好。仅仅是提供測试使用而已。

    留言板代码(有兴趣的能够測试)
    index.html
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
    	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    	<title>Document</title>
    </head>
    <body>
    	<form action="add.php" method="POST"> 
    		用户:<input type="text" name="name" /><br> 
    		内容:<input name="content"/><br /> 
    		<input type="submit" value="提交" /> 
    	</form> 
    </body>
    </html>

    提交到接收页面add.php

    <?php 
    
    	$conn=mysql_connect('localhost','root','') or die("数据库连接失败");
    	mysql_query("set names gb2312");
    	mysql_select_db("mytest");
    
    	$name=$_POST['name'];
    	$content=$_POST['content'];
    	$sql="INSERT INTO message(id,NAME,content) VALUES ('','".$name."','".$content."')";
    	var_dump($sql);
    	if(mysql_query($sql)){
    		echo "留言成功"; 
    	}
    	
    
    ?> 

    显示留言的show.php

    <?php 
    	$conn=mysql_connect('localhost','root','wzw123') or die("数据库连接失败");
    	mysql_query("set names gb2312");
    	mysql_select_db("mytest");
    
    	$sql="select * from message order by id desc";
    	$result=mysql_query($sql);
    	while ($all=mysql_fetch_array($result)) {
    		
    		echo $all['id']."==>".$all['name']."==>".$all['content'];
    		
    		echo "<hr>";
    	}
    
     ?

    >



    由于是測试,所以代码写的有点无厘头。见谅见谅,凑合看。

    这是输出的留言内容。没做不论什么美化。唉。不要在意细节。嘿嘿


    那我们来看留言的地方,我们输入正常的留言内容肯定是没问题的。那假设我们猥琐的输入了javascript代码呢?


    效果非常明显,例如以下图



    那我们输入其它的javascript代码呢?比方获取client的cookie等等。。。都是能够的。


    假设你认为这些太鸡肋的话,那假设直接输入一个内嵌js的外链呢?假设外链里有些获取各种信息的代码呢?那岂不是轻松获取信息?


    假设管理员在后台审核留言的话,被别人获取到cookie或者其它信息的话。在结合CSRF后果也是非常严重的。


    仅仅是做个演示。不是为了方便别实用心的人。请不要用于非法用途



    PS:本文仅仅是为提高程序员的安全意识。加强安全防护,请不要用于非法用途!因为水平有限,本文仅仅做抛砖引玉,转载请注明出处,谢谢。


  • 相关阅读:
    MySQL动态行转列
    决定把BLOG的文章从CU上同步过来
    MYSQL 如果把数据文件保存到其他磁盘里
    开元系统2.0框架平台
    批量修改表引擎
    arcims(HtmlView)开发经验总结1
    arcims 第2讲
    arcims讲座三:怎样设置ArcIMS的权限验证
    arc ims 第一讲
    arcims 讲座四:ArcIMS(HTML Viewer)定制开发探讨
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/7003689.html
Copyright © 2011-2022 走看看