在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:十三种技术的集 ...
随机推荐
- LVS+keepalived均衡nginx配置
如果单台LVS发生突发情况,例如宕机.发生不可恢复现象,会导致用户无法访问后端所有的应用程序.避免这种问题可以使用HA故障切换,也就是有一台备用的LVS,主LVS 宕机,LVS VIP自动切换到从,可 ...
- Python爬虫基础示例
使用pip安装相关依赖: pip install requests pip install bs4 安装成功提示:Successfully installed *... 爬取中国天气网数据示例代码: ...
- caioj 1086 动态规划入门(非常规DP10:进攻策略)
一开始看到题目感觉很难 然后看到题解感觉这题贼简单,我好像想复杂了 就算出每一行最少的资源(完全背包+二分)然后就枚举就好了. #include<cstdio> #include<a ...
- HDU 4960 Another OCD Patient 简单DP
思路: 因为是对称的,所以如果两段是对称的,那么一段的前缀和一定等于另一段的后缀和.根据这个性质,我们可以预处理出这个数列的对称点对.然后最后一个对称段是从哪里开始的,做n^2的DP就可以了. 代码: ...
- hdu 4707 Pet【BFS求树的深度】
Pet Time Limit: 4000/2000 MS (Java/Others) ...
- rac重新启动遭遇ORA-01078、ORA-01565、ORA-17503、ORA-12547
今天測试环境server重新启动导致一个节点集群无法重新启动,遭遇ORA-12547错误.详细例如以下: server重新启动后,rac1集群无法启动,rac2正常启动: [root@rac1 ~]# ...
- Codeforces 327A-Flipping Game(暴力枚举)
A. Flipping Game time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- BZOJ3875: [Ahoi2014&Jsoi2014]骑士游戏
[传送门:BZOJ3875] 简要题意: 给出n种怪物,每种怪物都带有三个值,S[i],K[i],R[i],分别表示对他使用普通攻击的花费,使用魔法攻击的花费,对他使用普通攻击后生成的其他怪物. 每种 ...
- 用Struts2搭建一个登录例子【本人亲测好用】
今天尝试struts2的搭建,遇到不少的问题,终于一一解决,逛了很多地方,最终完成搭建 1.首先要下载struts2的一些组件,我下载的是版本2.3.4.1,Eclipse是4.6版本的.由于版本的不 ...
- RMQ算法 以及UVA 11235 Frequent Values(RMQ)
RMQ算法 简单来说,RMQ算法是给定一组数据,求取区间[l,r]内的最大或最小值. 例如一组任意数据 5 6 8 1 3 11 45 78 59 66 4,求取区间(1,8) 内的最大值.数据量小 ...