textarea与XSS攻击

textarea用法

一般是用来接收用户输入,用于提交到服务器端,例如 网站的评论框。

如果此框也用于显示服务器端回传的内容,则有如下两种用法

法1 后台直接插入

<textarea><%=serverString;%></textarea>

法2 使用JS DOM接口赋值

textareaDom.value = "<%=serverString;%>"

textarea content特性

即法1特性, 即使将html代码段插入textarea, html代码段不会执行, 仅仅将其作为普通文本显示。

<html>
<head>

</head>
<body>
<textarea>

<script>alert("aa")</script>
<div>bbb</div>

</textarea>
</body>
</html>

将HTML代码贴到此网站的编辑框中,点击运行看效果。

http://www.tool.la/WebEditor02/

textarea 仍然可遭受XSS攻击

不同于其他标签,例如div, 其内容内嵌script脚本,会被执行,

尽管textarea不会执行script,其仍然可遭受XSS攻击。

在插入textarea内容时候,提前关闭标签,然后输出script脚本,如下

<html>
<head> 

</head>
<body>
<textarea>

</textarea><script>alert("aa")</script>

</textarea>
</body>
</html>

HTML规范要求,内容中不能有闭合标签。

http://www.w3.org/TR/html-markup/syntax.html#contents

An end tag that is not contained within the same contents as its start tag is said to be a misnested tag.

规范上要求的 textarea content 内容为 replaceable character data

http://www.w3.org/TR/html-markup/textarea.html

这种字符类型,要求内容中不能有标签闭合的字符:

http://www.w3.org/TR/html-markup/syntax.html#replaceable-character-data

must not contain any occurrences of the string "</" followed by characters that are a case-insensitive match for the tag name of the element containing the replaceable character data (for example, "</title" or "</textarea"), followed by a space character, ">", or "/".

textarea 防XSS攻击方法

对于法1 需要实施HTML转码,将</sss>转换为 &lt;

<textarea><%=encodeHTML(serverString);%></textarea>

对于法2 需要实施JS转码

textareaDom.value = "<%=encodeJS(serverString);%>"

如果您的后台不支持转码,可以使用法2+ajax获取方式:

1、 将显示的数据存储为后台文件(logstr.txt), 例如文件内容为,含有攻击脚本,使用法1会构成XSS攻击:

</textarea>

<div>aa</div>

<script>alert("aa")</script>

2、使用ajax获取此文件内容, 后调用法2接口给textarea赋值。

<html>
<head>
    <script src="./jquery.js"></script>
</head>
<body>
        <textarea id="test">
        </textarea>
        <script type="text/javascript">

            $.get("./logstr.txt", {Action:"get",Name:"lulu"}, function (data, textStatus){
                document.getElementById("test").value = data;
            });

        </script>
</body>
</html>
时间: 2024-08-05 09:28:40

textarea与XSS攻击的相关文章

Jsoup代码解读之六-防御XSS攻击

Jsoup代码解读之八-防御XSS攻击 防御XSS攻击的一般原理 cleaner是Jsoup的重要功能之一,我们常用它来进行富文本输入中的XSS防御. 我们知道,XSS攻击的一般方式是,通过在页面输入中嵌入一段恶意脚本,对输出时的DOM结构进行修改,从而达到执行这段脚本的目的.对于纯文本输入,过滤/转义HTML特殊字符<,>,",'是行之有效的办法,但是如果本身用户输入的就是一段HTML文本(例如博客文章),这种方式就不太有效了.这个时候,就是Jsoup大显身手的时候了. 在前面,我

XSS攻击介绍

一.概念 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,也是web中最主流的攻击方式是指恶意攻击者利用网站没有多用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中而盗取用户资料 二.XSS攻击的危害 1.盗取各类用户帐号,如机器登录帐号.用户网银帐号.各类管理员帐号2.控制企业数据,包括读取.篡改.添加.删除企业敏感数据的能

xss攻击(跨站脚本)

原理跨站脚本(Cross site script,简称xss)是一种"HTML注入",由于攻击的脚本多数时候是跨域的,所以称之为"跨域脚本". 我们常常听到"注入"(Injection),如SQL注入,那么到底"注入"是什么?注入本质上就是把输入的数据变成可执行的程序语句.SQL注入是如此,XSS也如此,只不过XSS一般注入的是恶意的脚本代码,这些脚本代码可以用来获取合法用户的数据,如Cookie信息. 其原理如下图所示: X

转:前段安全之XSS攻击

前端安全 原文链接:https://www.freebuf.com/articles/web/185654.html 随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企业安全问题的高危据点.在移动互联网时代,前端人员除了传统的 XSS.CSRF 等安全问题之外,又时常遭遇网络劫持.非法调用 Hybrid API 等新型安全问题.当然,浏览器自身也在不断在进化和发展,不断引入 CSP.Same-Site Cookies 等新技术来增强安全性,但是仍存在很多潜在的威胁

BBS(仿博客园系统)项目05(后台管理功能实现:文章添加、富文本编辑器使用、xss攻击、BeautifulSoup4模块、富文本编辑器上传图片、修改头像)

摘要 布局框架搭建 随笔添加 后台管理富文本编辑器KindEditor xss攻击 文章简介的截取,BeautifulSoup4模块 富文本编辑器上传图片 头像修改 一.后台管理框架布局搭建 后台管理布局框架分析:导航条.左侧功能区.右侧主要功能显示和实现区 实现: 导航条:使用bootstrap模板:JavaScript>>导航条 左侧:使用bootstrap模板:组件>>列表组 右侧:使用bootstrap模板:JavaScript>>标签页 新建后台管理路由(注意

PHP防御XSS攻击的终极解决方案

最近测试XSS攻击修复时,找到的一个比较不错的文章,分享给大家. Update20151202: 感谢大家的关注和回答,目前我从各种方式了解到的防御方法,整理如下: PHP直接输出html的,可以采用以下的方法进行过滤: 1 1.htmlspecialchars函数 2   3 2.htmlentities函数 4   5 3.HTMLPurifier.auto.php插件 6   7 4.RemoveXss函数(百度可以查到) PHP输出到JS代码中,或者开发Json API的,则需要前端在J

SQL 注入、XSS 攻击、CSRF 攻击

SQL 注入.XSS 攻击.CSRF 攻击 SQL 注入 什么是 SQL 注入 SQL 注入,顾名思义就是通过注入 SQL 命令来进行攻击,更确切地说攻击者把 SQL 命令插入到 web 表单或请求参数的查询字符串里面提交给服务器,从而让服务器执行编写的恶意的 SQL 命令. 对于 web 开发者来说,SQL 注入已然是非常熟悉的,而且 SQL 注入已经生存了 10 多年,目前已经有很成熟的防范方法,所以目前的 web 应用都很少会存在漏洞允许进行 SQL 注入攻击. 除非是入门开发人员,在开发

超强XSS攻击利器

======================================================================= BackTrack 5 R1 XSS研究之XSSer(超强XSS攻击利器)使用说明中文版 XSSer使用说明 ================================================================ 简介: ======================================================

xss攻击

这一篇,对xss攻击进行模拟, 服务4(被攻击对象,这里将其部署在http://127.0.0.1:8004) var http = require('http'); var url = require('url'); http.createServer(function (req, res) { // 打印url var pathname = url.parse(req.url).pathname; console.log('Request for ' + pathname + ' recei