html - 替换为 HTML ascii 码

标签 html vb.net ascii

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

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 注入(inject)是安全的(还有其他方法,参数化查询等,但那不是重点)。然而,会发生什么,它首先用 < 替换 < 然后继续替换新写入的字符串,因为每个替换字符串都有 &、# 和 ;签到。

有什么提示吗?我考虑过为此使用正则表达式,但我找不到任何足够简单的像样的 Visual Basic 示例。

编辑:感谢您的提示。我确信会有一个“聪明”的简单方法来做到这一点,但我想毕竟没有可用的通用方法。首先重新安排问题案例是这里显而易见的解决方案,谢谢。我想工作日太长了,我没注意到。 :D

至于参数化查询,回来查看我发现我的英语没有按预期出现。我的意思是说我已经在使用它们了,这里的这个问题是专门为了防止以后在其他地方使用相同字符串的各种 html 注入(inject)和可能的 sql 注入(inject)。再次感谢您的帮助。

最佳答案

如果这是 .NET,您可能会查看 System.Web.HttpServerUtility.HtmlEncode相反。

如果您使用的是 VBScript/VB6,只需将符号和井号移到此列表的顶部,不要依赖此功能来保护您免受 sql 注入(inject)。您仍然需要参数化查询。

关于html - 替换为 HTML ascii 码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/709694/

相关文章:

javascript - 如何使用 FileReader 检测 '\n\r'

asp.net 自定义错误页面不起作用

java - 在 Java 中对字符进行求和和相减,并且始终得到 ASCII 范围内的结果

c# - 如何使用 String.Contain 函数使用其 ascii 字符来查找字符串是否具有回车符?

javascript - jQuery 移动解剖与全尺寸混合?

html - 如何旋转按钮元素背景而不是按钮本身

javascript - 显示数组的整个键/值

vb.net - VB.NET 中的多个选择案例

asp.net - VB.NET 查询字符串有参数

c++ - 如何使用 C++ 将图像文件转换为 ASCII 图像?