当前位置:  开发笔记 > 后端 > 正文

替换为HTML ascii代码

如何解决《替换为HTMLascii代码》经验,为你挑选了1个好方法。

我遇到了一个问题.写了以下代码片段:

teksti = teksti.Trim()
teksti = Replace(teksti, "<", "& lt;")
teksti = Replace(teksti, ">", "& gt;")
teksti = Replace(teksti, """", "& quot;")
teksti = Replace(teksti, "'", "& #8217;")
teksti = Replace(teksti, "%", "& #37;")
teksti = Replace(teksti, "&", "& amp;")
teksti = Replace(teksti, "#", "& #35;")
teksti = Replace(teksti, "@", "& #64;")

写完之后我意识到这成了它自己的问题.该函数应该使HTML和SQL注入的信息安全(还有其他方法,参数化查询等,但这不是重点).然而,发生的事情是,它首先替换<,& lt; 然后再次替换新写入的字符串,因为每个替换字符串都有&,#和; 签到它.

任何提示?我考虑过使用正则表达式,但我找不到任何简单的Visual Basic示例.

编辑:感谢您的提示.我确信会有一个"聪明"的简单方法来做到这一点,但我想毕竟没有可用的常用方法.首先重新安排问题案例是明显的解决方案,谢谢你.我想工作日太长了,我无法注意到.:d

至于参数化查询,检查后我看到我的英语没有按预期出现.我的意思是说我已经在使用它们,这里的问题是特定的,以防止所有方式的html注入和可能的sql注入使用相同的字符串以后.再次感谢您的帮助.



1> Joel Coehoor..:

如果这是.NET,你可能会看一下System.Web.HttpServerUtility.HtmlEncode.

如果你正在使用VBScript/VB6,只需将&符号和井号注册到此列表的顶部,并且不依赖此函数来保护您免受sql注入.您仍然需要参数化查询.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有