2013-01-15 20 views
2

我試圖從創建腳本的人員定義的SQL腳本(使用正則表達式的C#中)中選擇一個值,然後可以在需要時由其他人員替換。SQL中未使用的字符/字符組合

我設法做到這一點使用大於和小於兩次的符號,例如, SELECT * FROM users WHERE username = '<<username>>',這工作得很好。

我遇到的問題是,當我去這個腳本添加到數據庫中存儲它(使用aspx頁面),它引發以下錯誤:

System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (ctl00$MainBody$tstScriptTextBox="...username = '<<username>>';"). 

我的問題是:有沒有其他符號不會在SQL腳本中使用,並且不會對Regex造成任何問題?

+1

FWIW,我用花括號代替模板中的「snippets」:''{username}''。 – HABO

+0

這是正確的,它不喜歡無效的字符..也如果你在.net 4.0中這樣做,當你驗證頁面時,在版本中有一個錯誤,它的值設置爲false ..嘗試不同的字符,這是一個解決方案 – MethodMan

+0

ValidateRequest =「false」 在.NET 4.0中無法正常工作,另一種方式是設置Validation = true並執行諸如'http://dotnetfish.blogspot.com/2007 /08/systemwebhttprequestvalidationexception.htmlServer.Html.Encode(your text); – MethodMan

回答

0

已閱讀本文Script Exploits Overview - Exception對特定符號的描述較少,但如標題所示,更多關於潛在腳本漏洞的信息。

+0

感謝您的幫助。我將不得不重新考慮一些事情才能正確完成。 – user1980741