WEB语言转义总结

后台字符串嵌入前台语言输出

web语言分为后台和前台,如果后台语言嵌入方式将字符串输出到前台语言中,需要按照前台语言的要求进行转义。

因为前台各个语言都有自身的保留字符, 用于规定自身的语法格式,如果后台字符串直接输出则可能会跟前台的语言的保留字符冲突。

具体分为以下三种:

1、 向HTML中输出,作为HTML标签对中的内容 或者 属性值字符串的内容输出,

  如果输出的内容想原样展示,为了避免被HTML语言翻译错误,需要使用后台语言接口进行转义,

  一般名字叫  encodeHTML,

  将 HTML语法使用字符翻译为 HTML 实体:

例如 将 & 翻译为  

<input value="<%=encodeHTML(name)%>">

==>

<input value="&nbsp;">  <!-- 控件值显示为 一个 & -->

2、 向Javascript语言中输出,作为Javascript字符串的内容,

  对应字符串"XXX"中的XXX的全部或者部分内容,需要使用后台语言接口进行转义,

  一般名字叫encodeJS, 将后台字符串中的每一个字符转义为Javascript转义形式,

例如 将 " 翻译为 \"

var name = “<%=name%>”;

==>

var name = "\"";

3、 向XML数据格式中输出,需要类似HTML转义的接口,使用也相同。

  一般取名为 encodeXML

负责如下XML常用字符转义:



























字符

转义字符

描述

&

&amp;

<

&lt;

小于号

>

&gt;

大于号

"

&quot;

双引号

&apos;

单引号

DOM API (text &
HTML)

在前台语言中,主要是HTML 和 JS之间:

1、如果使用JS在DOM节点中,原样显示文本内容,需要将此字符串设置到DOM节点的innerText 或者 textContent
(firefox);

2、字符串包括合法html标签,并且作者就是想使用这些字符串改变DOM的内容,需要将此字符串设置到DOM节点的innerHTML属性。

两者使用场景需要明确,不能误用。

不能将需要原样输出的使用innerHTML属性设置,否则,对于用户可修改的参数,万一其被修改为合法的HTML语言,则页面展示为HTML元素,此为XSS攻击提供了漏洞。

也不能将需要按照HTML染显示的字符串,使用文本节点属性设置,给用户显示显示HTML代码是显然的不合理的,程序员例外(例如博客园的代码展示区)。

上面所说的两种DOM API,对应JQuery的html() 和 text()。

Javascript操作HTML DOM也牵扯到HTML转义事情,例如想组织一个字符串输出到html接口,

此字符串中含有需要原样输出的内容,还包括需要按照HTML渲染显示的字符串,

可以使用JQuery接口组合使用来完成,实现功能类似后台语言中的encodeHTML, 如下代码例子:


<html>
<head>
<script type="text/javascript" src="./jquery/jquery-1.9.1.js"></script>
</head>
<body>
<div id="test"></div>
<div id="test1"></div>
<input type="text" id="inputText">
<script>
$("#test").text("<div>aa<</div>")
$("#test1").html($("#test").html() + "<div>OOOOO</div>")
$("#inputText").val($("#test").html());
</script>
</body>
</html>

JS反向decodeHTML操作,与上面操作相反:

var decoded = $("<div/>").html(encodedStr).text();


<html>
<head>
<script type="text/javascript" src="./jquery/jquery-1.9.1.js"></script>
</head>
<body>
<div id="test"></div>
<input type="text" id="inputText">
<script>
$("#test").html("&lt;<div>f</div>")
$("#inputText").val($("#test").html()); //html arg
$("#inputText").val($("#test").text()); // text in html DOM
</script>
</body>
</html>

原始的JS封装的 HTMLEncode 和 HTMLDecode 实现接口:


<script type=”text/javascript”>
function HTMLEncode(html)
{
var temp = document.createElement (“div”);

(temp.textContent != null) ?
(temp.textContent = html) :
(temp.innerText = html);

var output = temp.innerHTML;
temp = null;
return output;
}

function HTMLDecode(text)
{
var temp = document.createElement(“div”);
temp.innerHTML = text;

var output = temp.innerText || temp.textContent;
temp = null;
return output;
}

var html = “<br>dffdfqqqqq”;
var encodeHTML = HTMLEncode(html);
alert(“方法一:” +encodeHTML);

var decodeHTML = HTMLDecode(encodeHTML);
alert(“方法一:” +decodeHTML); </script>

WEB语言转义总结,码迷,mamicode.com

时间: 2024-10-08 07:27:08

WEB语言转义总结的相关文章

[label][转载][paypal]paypal在线支付接口的WEB语言设置

http://stephen830.iteye.com/blog/274072 ★★★ 本篇为原创,需要引用转载的朋友请注明:< http://stephen830.iteye.com/blog/274072 > ,谢谢支持!★★★ 以前曾经写过一篇关于<paypal在线支付的通信接口 http://stephen830.iteye.com/blog/254565 >的文章.对以前文章的一个补充: 自从国际paypal增加了繁体中文的WEB版本后,许多早先集成paypal接口的系统

C语言转义字符相关知识

在C语言里所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示.而C中定义了一些字母或数字前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了. 所有的转义字符和所对应的意义:(如下图)

Html5 Web App 手机跨平台开发笔记

APP 开发平台包括Android 平台开发,Mac os X 平台开发以及Windows Phone 7平台开发.开发的程序都只能在各自手机系统上运行,如果开发出一种程序,能再以上任何系统上运行,那是多么美好的事情.而Html5 Mobile Web App就是其中一种跨平台方法.下面是相关知识的介绍 1.背景 HTML5是HTML的最新标准,HTML5的草案已经于2008年发布,目前W 3 C(万维网联盟)正在对此进行进一步完善.对许多人来说,早该进行这种改进了.十多年来,HTML一直没有进

Web服务器的趋势

目前,Web服务器(网站服务器培训 邮件服务器培训 视讯服务器培训 )的发展有三个主要趋势: 1.从HTML到XML(Extensible Markup Language-可扩展标记语言) HTML被称为“第一代Web语言”,如前面的介绍,HTML作为Web的开发语言,对Web应用的发展起到了关键性的作用.但是HTML有一个致命的缺点:只适合于人与计算机的交流,不适合计算机与计算机的交流.HTML通过大量的标记来定义文档内容的表现方式,它仅仅描述了应如何在Web浏览器页面上布置文字.图形,并没有

Fastreport生成WEB报表

开发WEB应用系统通常都会遇到报表打印问题.简单应用可利用IE的页面打印功能,利用HTML标签控制格式来实现.但复杂的业务型应用系统,报表不仅是组成应用的 重要部分,还常常是相当复杂的.现在很多应用系统都要求提供自定义报表的功能——即客户可以自行设计.修改报表. 在C/S结构系统中,报表问题有很多成熟的解决方法.如DELPHI开发工具不仅自带有报表控件,还可以利用第三方控件来实现快速灵活的报表制作和打印,其中有名的控件是FR-Software & A.Tzyganenko 的FastReport

JAVA WEB 环境的搭建及所需的技术简介

web 开发,有点头疼,从最初一点一点开始查找,服务器查了好久才知道是什么意思,╮(╯▽╰)╭ 还有,最近再练盲打, 祝我成功咯~ 一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变. 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同

atitit.web原理 理论attilax总结

1. Web3.01 2. Web的未来趋势1 3. Web语言与应用导论_百度百科.html2 4. <Web设计与编程导论(影印版)>((美)王(Wang...)[简介_书评_在线阅读] -.html4 5. <Web技术导论(第3版)(21世纪高等学校规划教材·计算机应用)>(郝兴伟...)[简介_书评_在线阅读] -.html5 6. <Web程序设计(第8版)(国外计算机科学经典教材)>((美)塞巴斯塔(Sebesta,...)[简介_书评_在线阅读] -.h

java web开发 高并发处理

java web开发 高并发处理 java 高并发 java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF.尤其是Web2.0的应用,数据库的响应是首先要解决的. 一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降.常用的优化措施是M-S(主-从)方式进行同步复制,将查询和操作和分别在不

web相关概念

1.web概念:web1.0:静态页面为主(传统企业的页面)特点:由网站提供方来更新和维护内容web2.0:以动态页面为主,以用户为中心,网站由用户参与或编辑web3.0:智能化人与人与机器的交流(各有各的说法,大概理解成多种平台多种应用的集合)静态web语言:HTML语言<html><head><title>Boy's blog</title><body>This is a boy</body></head><ht