在asp.net中使用decodeuriccomponent

using decodeURIComponent within asp.net

本文关键字:decodeuriccomponent asp net      更新时间:2023-09-26

我使用javascript编码了一个html文本属性,并将其传递到我的数据库中。我的意思是javascript的字符串,如"Wales&PALS"

encodeURIComponent(e.value);

转换为"Wales%20PALS"

我想把它从asp.net转换回"Wales&PALS"。关于如何嵌入

有什么想法吗?
decodeURIComponent(datatablevalues) 

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

为了防止SQL注入,我们使用参数化查询或存储过程。编码并不适合这种情况。Html编码是很好的,如果你希望你的用户添加东西到你的网站,你想防止他们注入恶意javascript。通过对字符串进行编码,浏览器只会打印出内容。你所做的是对字符串进行编码,将其添加到数据库中,然后尝试将其解码回原始状态并为客户端显示它。这样你就容易受到各种javascript注入的攻击。

如果这是你想要的,没问题,只是要意识到后果。每次做这样的决定时,都要知道"为什么"answers"如何"。这有点危险。

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

给你一个主意:)

如果你真的坚持你的方式(编码-> db ->解码->输出),我们有一些选择如何做到这一点。我将展示一个示例:

例如,您可以创建一个新的get-only属性,它将返回您解码的数据。(如果需要,您仍将保留原始编码数据)。像这样:
public string DecodedData
{
   get
   {
       return HttpUtility.UrlDecode(originalData);
   }
}
http://msdn.microsoft.com/en-us/library/system.web.httputility.aspx

如果你试图编码一个html输入,也许你最好使用不同的编码机制。不确定是否javascripts encodeURIComponent可以正确解析出html

在HttpServerUtility中尝试UrlDecode。

相关文章:
  • 没有找到相关文章