gpt4 book ai didi

javascript - 在 asp.net 中使用 decodeURIComponent

转载 作者:行者123 更新时间:2023-11-29 16:16:00 29 4
gpt4 key购买 nike

我使用 javascript 编码了一个 html 文本属性并将其传递到我的数据库中。我是说像“Wales&PALS”这样的字符串的 javascript

encodeURIComponent(e.value);

转换为“Wales%20PALS”

我想将其从 asp.net 转换回“Wales&PALS”。关于如何嵌入的任何想法

decodeURIComponent(datatablevalues) 

在我的 asp.net 函数中返回所需的文本?

最佳答案

为了防止 SQL 注入(inject),我们使用参数化查询或存储过程。编码真的不适合那个。如果您希望您的用户向您的网站添加内容并且您希望防止他们注入(inject)恶意 javascript,则 Html 编码很好。通过对字符串进行编码,浏览器只会打印出内容。您正在做的是对字符串进行编码,将其添加到数据库中,然后尝试将其解码回原始状态并将其显示给客户。这样你就容易受到多种 javascript 注入(inject)的攻击。<​​/p>

如果这是您的意图,没问题,请注意后果。每次做出这样的决定时,都要知道“为什么”和“如何”。这有点危险。

例如,如果您想让您的用户添加 html 标签作为增强插入内容的一种方式,一个更安全的替代方法是创建您自己的标签集(或使用现有标签,如 BBCode) ,因此输入从不包含任何 html 标记,当您将其插入数据库时​​,只需先解析它以切换到真正的 html 标记。 Asp.net 引擎将永远不允许在请求期间进行恶意输入(除非您自愿强制它这样做),并且因为您已经控制了对输入的解析,所以您可以确保它在输出时是安全的,因此不需要进行一些额外的处理。

只是给你的一个想法:)

如果您真的坚持按照自己的方式进行操作(编码 -> 数据库 -> 解码 -> 输出),我们有一些选项可以帮助您做到这一点。我将向您展示一个示例:

例如,您可以创建一个新的只读属性,它将返回您的解码数据。 (如果需要,您仍将保留原始编码数据)。像这样:

public string DecodedData
{
get
{
return HttpUtility.UrlDecode(originalData);
}
}

http://msdn.microsoft.com/en-us/library/system.web.httputility.aspx

如果您尝试对 html 输入进行编码,也许您最好使用不同的编码机制。不确定 javascripts encodeURIComponent 是否可以正确解析出 html。

关于javascript - 在 asp.net 中使用 decodeURIComponent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15794918/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com