我在这里看到了一些相关的问题,但他们并没有完全谈论我面临的同样问题.
我想使用HTML Agility Pack从HTML中删除不需要的标记,而不会丢失标记中的内容.
例如,在我的场景中,我想保留标签" b"," i"和" u".
并输入如下:
<p>my paragraph <div>and my <b>div</b></div> are <i>italic</i> and <b>bold</b></p>
生成的HTML应为:
my paragraph and my <b>div</b> are <i>italic</i> and <b>bold</b>
我尝试使用HtmlNode的Remove方法,但它也删除了我的内容.有什么建议?
假设我有两个单词:
Alexander和Alecsander或Alexander和Alegzander
亚历山大和Aleaxnder,或任何其他组合.一般来说,我们在谈论输入单词或一组单词时的人为错误.
我想要达到的是获得2个字符串的字符匹配百分比.
这是我到目前为止:
DECLARE @table1 TABLE
(
nr INT
, ch CHAR
)
DECLARE @table2 TABLE
(
nr INT
, ch CHAR
)
INSERT INTO @table1
SELECT nr,ch FROM [dbo].[SplitStringIntoCharacters] ('WORD w') --> return a table of characters(spaces included)
INSERT INTO @table2
SELECT nr,ch FROM [dbo].[SplitStringIntoCharacters] ('WORD 5')
DECLARE @resultsTable TABLE
(
ch1 CHAR
, ch2 CHAR
)
INSERT INTO @resultsTable
SELECT DISTINCt t1.ch ch1, t2.ch ch2 FROM @table1 t1
FULL JOIN @table2 t2 ON t1.ch = t2.ch …Run Code Online (Sandbox Code Playgroud) 用户可以输入稍后将显示给其他用户的HTML.我正在使用的WYSIWYG插件从前端清理HTML.它删除了所有潜在的恶意标签(脚本,src,以"on"等开头的任何东西)我显然也需要在后端进行一些验证.
有谁知道C#的好解决方案?我一直看到这个http://roberto.open-lab.com/2010/03/04/a-html-sanitizer-for-c/,虽然我有点犹豫是否使用随机博客中的一些代码.有没有众所周知的插件?大多数人在这种情况下做了什么?
我正在使用Newtonsoft JSON解串器.如何为XSS(跨站点脚本)清理JSON?在反序列化或编写某种自定义转换器/消毒剂之前清理JSON字符串?如果是这样 - 我不是百分之百确定最好的方法来解决这个问题.
下面是JSON的示例,其中注入了危险脚本并需要"清理".我希望在我对其进行反序列化之前管理它.但是我们需要假设各种XSS场景,包括BASE64编码脚本等,所以问题比简单的REGEX字符串替换更复杂.
{ "MyVar" : "hello<script>bad script code</script>world" }
Run Code Online (Sandbox Code Playgroud)
这是我的反序列化器的快照(JSON - > Object):
public T Deserialize<T>(string json)
{
T obj;
var JSON = cleanJSON(json); //OPTION 1 sanitize here
var customConverter = new JSONSanitizer();// OPTION 2 create a custom converter
obj = JsonConvert.DeserializeObject<T>(json, customConverter);
return obj;
}
Run Code Online (Sandbox Code Playgroud)
JSON是从第三方UI界面发布的,所以它相当暴露,因此服务器端验证.从那里,它被序列化为各种对象,并且通常存储在DB中,以后可以直接在基于HTML的UI中检索和输出,因此必须减轻脚本注入.