我试图使用 Win8-Searchbar 通过 http-Server 进行扫描。
string uriString = "http://myServer:myPort/?ItemList,SQLFilter=Title LIKE '%" + searchTerm + "%'";
Uri uri = new Uri(uriString);
“%”、“”(空白)等特殊符号正在转换为“%25”、“%20”......
我怎样才能防止这些转变?http-Server 不理解它:(
据w3schools称,
URL 只能使用 ASCII 字符集通过 Internet 发送。
由于 URL 通常包含 ASCII 集之外的字符,因此必须将 URL 转换为有效的 ASCII 格式。
URL 编码将不安全的 ASCII 字符替换为“%”,后跟两个十六进制数字。
这就是为什么会发生 URL 编码并且无法避免它的原因。
在服务器端,您需要使用HttpUtility.UrlDecode来解码字符串。
在 URL 中暴露类似的东西SQLFilter=Title LIKE '%" + searchTerm + "%'"
代表了一个巨大的安全问题。任何人都可以修改它以在您的 DB 上运行任意语句。