gpt4 book ai didi

c# - 在 C# 中清理用户输入 - 最干净的方法?

转载 作者:行者123 更新时间:2023-11-30 18:40:08 26 4
gpt4 key购买 nike

通过脚本动态插入 img 时有一个陷阱。

采用以下代码为地点插入图片:

newPlace.find('.PlaceThumb').append('<img src="' + place.ThumbnailUrl + '" alt="' + place.Name + '" width="50px" style = "padding:2px;"/>');

有人可以命名他们的位置:“onload="alert('hi')"标签将呈现为:

<img src="/item.aspx?id=123" alt="" onload="alert('hi')" width="50px" style = "padding:2px;"/>

当加载图像时,脚本将执行。

虽然只有 和 标签支持 onload 属性,但这是一个永远不要相信用户输入的好教训。

这样做的“正确”(漂亮、优雅、干净、通用)方式是什么:

newPlace.find('.PlaceThumb').append('<img src="' + place.ThumbnailUrl + '" alt="' + place.Name.replace('"', '&quot;') + '" width="50px" style = "padding:2px;"/>');

我在想,也许使用模板,您可以在字符串上定义一个运算符,对它们进行 UU 编码 - 类似于 C# 中以 @ 为前缀的字符串对反斜杠具有特殊含义的方式。有没有办法将此功能添加到标准 .net 字符串类?

最佳答案

也许您可以使用新的 Uri( yourUrlString )。我相信使用它(与 IsWellFormedUriString 和 IsWellFormedOriginalString 方法一起使用)将帮助您验证输入。

关于c# - 在 C# 中清理用户输入 - 最干净的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8705818/

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