在web开发中你不得不注意的安全验证问题#2-XSS
前言
XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。
恶意攻击者往Web页面里插入恶意html代码。当用户浏览该页之时,嵌入当中Web里面的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>
<?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>";
} ? >
由于是測试,所以代码写的有点无厘头。见谅见谅,凑合看。
这是输出的留言内容。没做不论什么美化。唉。不要在意细节。嘿嘿
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaWJleTBuZA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
那我们来看留言的地方,我们输入正常的留言内容肯定是没问题的。那假设我们猥琐的输入了javascript代码呢?
效果非常明显,例如以下图
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaWJleTBuZA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
那我们输入其它的javascript代码呢?比方获取client的cookie等等。。。都是能够的。
假设你认为这些太鸡肋的话,那假设直接输入一个内嵌js的外链呢?假设外链里有些获取各种信息的代码呢?那岂不是轻松获取信息?
假设管理员在后台审核留言的话,被别人获取到cookie或者其它信息的话。在结合CSRF后果也是非常严重的。
仅仅是做个演示。不是为了方便别实用心的人。请不要用于非法用途
PS:本文仅仅是为提高程序员的安全意识。加强安全防护,请不要用于非法用途!因为水平有限,本文仅仅做抛砖引玉,转载请注明出处,谢谢。
在web开发中你不得不注意的安全验证问题#2-XSS的更多相关文章
- 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践
提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...
- Web 开发中很实用的10个效果【附源码下载】
在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...
- WEB开发中的字符集和编码
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- Web 开发中很实用的10个效果
在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...
- Web开发中管理ipad屏幕的方向变化
Web开发中,我们会遇到在手机垂直或水平视角时展示不同状态的情况.下面我来总结一下检测移动设备方向变化的一些方法. 1 使用javascript 直接看代码: <script type=&quo ...
- 今日推荐:10款在 Web 开发中很有用的占位图片服务
设计网站时,将要使用的图像在一开始通常还不存在,这个时候布局是最重要的.然而,图像的尺寸通常是预先设置,实用一些占位图像可以帮助我们更好地预览和分析布局. 如今,有免费的占位图片自动生成工具可以使用, ...
- Web 开发中应用 HTML5 技术的10个实例教程
HTML5 作为下一代网站开发技术,无论你是一个 Web 开发人员或者想探索新的平台的游戏开发者,都值得去研究.借助尖端功能,技术和 API,HTML5 允许你创建响应性.创新性.互动性以及令人惊叹的 ...
- Redis在WEB开发中的应用与实践
Redis在WEB开发中的应用与实践 一.Redis概述: Redis是一个功能强大.性能高效的开源数据结构服务器,Redis最典型的应用是NoSQL.但事实上Redis除了作为NoSQL数据库使用之 ...
- Web开发中的主要概念
一.Web开发中的主要概念1.静态资源:一成不变的.html.js.css2.动态资源:JavaWeb.输出或产生静态资源.(用户用浏览器看到的页面永远都是静态资源) 3.JavaEE:十三种技术的集 ...
随机推荐
- [NOIP2014普及组]子矩阵
题目:洛谷P2258.Vijos P1914.codevs 3904. 题目大意:给你一个矩阵,要你找一个r行c列的子矩阵,求最小分值(子矩阵和分值的定义见原题). 解题思路:n和m比较小,考虑暴力. ...
- Dia Diagram Editor(流程图、UML)免费开源绘图软件
近期工作各种繁忙,导致很少分享自己喜欢和常用的一些工具,今天有点时间再次给各位喜欢开源的小伙伴介绍一个好用.免费.开源的软件Dia Diagram Editor. 首先给大家看看这个软件的主界面吧! ...
- Test-我喜欢LInux
测试发帖流程 哈哈 习惯一下先.
- Laravel+vue实现history模式URL可行方案
项目:laravel + vue 实现前后端分离.vue-router 默认 hash 模式 -- 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载. h ...
- ArcGIS api for javascript——设置可见的比例
描述 ArcGIS JavaScript API的1.2版本加入更多地图如何缓存,切片和地图服务的控制.本例展示了如何限制地图能够接收切片的比例等级.如果不想用户过分的放大或缩小,即使切片存在这些极端 ...
- vue23:vue-loader
vue-loader: 其他loader -> css-loader.url-loader.html-loader..... 后台: nodeJs(模块化) -> require expo ...
- Android控件-单选按钮RadioButton
RadioGroup单选按钮用法,还是先看效果图 先中后,点RadioGroup测试按钮,可在标题栏显示选择结果,点清除可以清除选择.下面上代码,main.xml: <RadioGroup an ...
- JAVA中jar包和war包的区别是
其实jar包和war包都可以看成压缩文件,用解压软件都可以打开,jar包和war包所存在的原因是,为了项目的部署和发布,通常把项目打包,通常在打包部署的时候,会在里面加上部署的相关信息. 这个打包实际 ...
- 学习思考:思考>努力
学.习.思.考 学习.思考,这2个词,4个字,其实代表了4个不同的动作:学.习.思.考. 学,就是从外部(他人)获得. 习,就是练习,行动. 思,就是从内部(自己)获得. 考,就是考量,检测. 因此, ...
- noip 2018 day1 T2 货币系统 完全背包
Code: #include<cstdio> #include<string> #include<cstring> #include<algorithm> ...