`
ssxxjjii
  • 浏览: 950649 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

转义问题集

阅读更多

struts2中设置过滤,把可能输入的危险字符,转换后存入数据库,然后再显示出来

参考:http://www.iteye.com/problems/10135

 

http://commons.apache.org/lang/api/org/apache/commons/lang/StringEscapeUtils.html


保存之前,先进行escape().
bohemia (架构师) 2009-01-13
bohemia, 不同意你的意见, 数据未必仅仅给WEB应用的。所以还是要慎重。 我的观点是尊重用户的输入, 输出的时候, 转变。
http://commons.apache.org/lang/api/org/apache/commons/lang/StringEscapeUtils.html 对汉字好像处理的不好。 会导致汉字也被ecode,虽然这符合W3C的规范。 但是, 不符合中国的国情!
sdh5724 (资深程序员) 2009-01-13
存的时候,就做过滤,这个做法并不好,这样会修改用户输入的内容,从而导致一些字段长度验证会有问题,建议在显示的时候做这个过滤。
taopian (高级程序员) 2009-01-14
不知道你structs采用什么渲染技术的。 JSP? VELOCITY? JSF?  每个东西的做法都不一样,
JSP的话你看看这个:
http://www.ibm.com/developerworks/tivoli/library/s-csscript/
VELOCIY的话, 可以自己实现渲染输出定义。 就实现一个输出渲染的CALLBACK接口。



sdh5724 (资深程序员) 2009-01-14
JSP没有什么好的办法, 想在架构上解决, 目前, 我还想不出来。
sdh5724 (资深程序员) 2009-01-14
设置过滤器吧; 简单有效的办法.
bohemia (架构师) 2009-01-14
JSON 你看看API去, 能不能自己改造, 或者有API的扩展实现。 JSON目前是XSS最泛滥的地方。 这个问题, 我也会去研究下, 太危险了。
sdh5724 (资深程序员) 2009-01-14
楼上说设置过滤器, 对新项目是个好办法, 但是对于已经在运行的项目, 数据库有很庞大的数据情况下, 还是无法做到安全。 目前的XSS攻击, 被发现漏洞后, 并不会马上给攻击, 基本会挂一个空的木马, 然后选择时机把真正的木马挂上去。防不胜防。  我觉得LZ要输出过滤, 基本也是因为有数据的原因吧。

我很庆幸当初选择的是VELOCITY, 因此, 实施安全起来特别愉快, 需要改造的地方不多。

分享到:
评论

相关推荐

    常用HTML转义字符,html转义符,JavaScript转义符,html转义字符表,HTML语言特殊字符对照表(ISO Latin-1字符集) - 来源:嘻嘻网 114_xixik_com_files

    HTML转义字符是网页开发中不可或缺的一部分,它们用于在HTML文档中表示特殊字符,防止浏览器错误解析或意外的代码执行。...通过深入学习和实践,开发者可以更熟练地应对各种编码问题,提升网页开发的专业水平。

    html页面转义字符对照表

    通过以上的总结可以看出,HTML中的转义字符非常丰富,不仅可以处理基本的ASCII字符集,还可以处理扩展的Unicode字符集。这对于创建国际化和高质量的网页是非常重要的。开发者可以根据实际需要选择合适的转义字符来...

    正则表达 转义字符

    左方括号 `[` 在正则表达式中用于定义字符集的开始。如果需要匹配实际的左方括号,需使用转义字符 `\`,即 `\[`。 **示例:** ``` ŵת壺[ ==> \[ ``` 解释:在本例中,`\[` 用于匹配实际的左方括号 `[`。 #####...

    ios 自带表情 转义字符实现

    3. **Unicode编码**:Unicode是一种国际字符集标准,旨在为世界上所有的字符提供统一的编码方案。表情符号也是基于Unicode编码的。 在iOS开发中,可以通过直接使用表情符号的Unicode编码来表示表情。但是,有时候...

    C#中需要转义的特殊符号

    3. **字符编码**:使用转义字符时要注意字符编码问题,确保使用的转义序列与所选字符集兼容。 4. **十六进制和八进制转义字符**:这两种转义字符可以用来表示任何 ASCII 字符。需要注意的是,当使用八进制表示法时,...

    C++第4课转义字符

    在C++编程语言中,转义字符是一种特殊符号,用于表示那些在文本字符串中具有特殊含义的字符。...在实际编程中,熟练运用转义字符能够帮助我们解决许多看似复杂的问题,提升程序的可维护性和用户体验。

    HTML和XML中的转义字符

    4. **注意转义字符的兼容性**:不同版本的HTML可能支持不同的转义字符集。例如,HTML4和HTML5对实体的支持有所不同。 #### 四、XML中的转义字符 XML是一种更加严格的标记语言,在处理文本数据方面有着广泛的应用。...

    转义表单提交字符处理函数

    不正确的处理可能会导致诸如XSS(跨站脚本攻击)等安全问题。因此,对用户提交的数据进行适当的转义是至关重要的。本文将详细介绍几种常用的用于处理表单提交字符的函数,包括在PHP和JavaScript中的应用。 #### PHP...

    JAVA转义字符

    这种类型的转义序列主要用于表示ASCII字符集中的字符,因为ASCII字符集总共包含128个字符,正好可以用三位八进制数表示。 #### 3. Unicode转义序列 Unicode转义序列是另一种重要的转义字符类型,它允许通过指定...

    HTML & XML 转义字符

    HTML和XML语言中,转义字符扮演着至关重要的角色,因为它们允许开发者在文本中插入特殊字符,而不会引起解析...无论是编写HTML网页还是XML文档,都应养成良好的习惯,适时使用转义字符,避免因字符冲突导致的解析问题。

    STM32ASCII码表和转义字符

    ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是一种基于拉丁字母的一套电脑编码系统,最初被设计为7位的字符集,包含了128个不同的字符,包括英文大小写字母、数字、标点...

    HTML转义字符串

    "html转义字符表"和"HTML语言特殊字符对照表(ISO Latin-1字符集) - 来源:嘻嘻网 114.xixik.com.htm"这两个文件则可能提供了更全面的HTML转义字符参考。ISO Latin-1字符集是一个包含256个字符的编码标准,其中许多...

    正则表达式基本语法,各类字符的转义

    ### 正则表达式基本语法与各类字符的转义 #### 概述 正则表达式是一种用于匹配字符串中字符组合的工具,在编程语言中广泛应用于文本搜索与替换操作。本文将详细介绍正则表达式的基本语法及特殊字符的转义方法,并...

    HTML转义符号.pdf

    ISO Latin-1 字符集是一种常用的字符集,包括很多特殊符号。例如: * 制表符:	 * 换行:
 * 回车:
 * 空格:  * 惊叹号:! 或 ! * 双引号:" 或 " * 数字标志:# 或 # * 美元标志:$ ...

    多国语 转义工具 多国语系统中用其他语言的软件等 很实用 日语 中文

    标题中的“多国语转义工具”指的是一个能够处理多国语言编码问题的软件工具,这类工具在处理不同语言字符集时尤其有用。在多国语系统中,由于各国语言的编码格式各不相同(例如,中文使用GB2312、GBK、UTF-8等编码,...

    常用 HTML转义

    为了解决这一问题,HTML引入了转义字符的概念,允许开发者在需要时准确地展示这些符号,同时保持代码的正确性。 #### 转义字符的重要性 在HTML中,`和`>`被用作标签的边界,而`&`用于转义序列的前缀。当我们在网页...

    转义字符

    总的来说,转义字符是编程和数据处理中的重要概念,它们帮助我们克服了字符集的限制,使得我们能够以更加灵活和精确的方式表示和处理文本数据。理解和熟练掌握转义字符的使用,对于编写可读性好、功能完整的代码以及...

    escapestringregexp特殊字符转义正则表达式

    除了基础的转义功能,`escape-string-regexp` 还可能提供其他扩展功能,如自定义转义字符集或者处理Unicode字符等。具体的功能可以通过查阅其源代码(14b8379版本)或官方文档来了解。 在实际项目中,这个库特别...

    C语言基础之转义字符:从原理到应用的字符编码教程 .txt

    本资源利用多个实例,如打印文件路径、输出控制字符、显示特殊字符等,展示了C语言转义字符的用法和作用,以及相关的概念和知识,如ASCII码、字符集、字符串等。本资源适合C语言教学和学习的教师和学生使用,帮助...

Global site tag (gtag.js) - Google Analytics