如何使用JavaScript安全地对URL进行编码,以便将其放入GET字符串?
var myUrl = "http://example.com/index.html?param=1&anotherParam=2";
var myOtherUrl = "http://example.com/index.html?url=" + myUrl;
Run Code Online (Sandbox Code Playgroud)
我假设你需要myUrl
在第二行编码变量?
该UriBuilder.Query
属性"包含URI中包含的任何查询信息." 根据文档,"查询信息根据RFC 2396进行转义."
基于此,并且由于此属性是可写的,我假设在设置它时,System.UriBuilder
将解析您的查询字符串,并根据RFC 2396转义(url编码).特别是,{和}不在非保留字符集中,所以他们应该根据RFC 2396的第9页进行转义.但是,似乎System.UriBuilder
没有做任何逃避.
我是否需要手动Server.URLEncode params,还是有办法System.UriBuilder
处理编码?
这是我的示例代码.你可以在ideone.com上运行它,看看确实没有URL编码.
using System;
public class Test
{
public static void Main()
{
var baseUrl = new System.Uri("http://www.bing.com");
var builder = new System.UriBuilder(baseUrl);
string name = "param";
string val = "{'blah'}";
builder.Query = name + "=" + val;
// Try several different ouput methods; none will be URL encoded
Console.WriteLine(builder.ToString());
Console.WriteLine(builder.Uri.ToString());
Console.WriteLine(builder.Query);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在创建一个组件,它将根据用户输入将查询参数附加到当前 url。这是改变url的方法。
submitSearch () {
this.$router.push({query: {search: this.search ? this.search : undefined}})
},
Run Code Online (Sandbox Code Playgroud)
提交“john doe”会将 url 更改为http://mysite.test?search=john%20doe
如何让它使用 + 代替?预期网址:http://mysite.test?search=john+doe
我在我的网络浏览器中输入以下网址,然后按Enter键.
http://localhost/website.aspx?paymentID=6++7d6CZRKY%3D&language=English
Run Code Online (Sandbox Code Playgroud)
现在在我的代码中,当我做HttpContext.Current.Request.QueryString ["paymentID"]时,
我得到6 7d6CZRKY =
但是当我做HttpContext.Current.Request.QueryString.ToString()时,我看到以下内容:
paymentID = 6 ++ 7d6CZRKY%3D&语言=英语
我想要提取用户在Web浏览器URL中键入的实际付款ID.我不担心网址是否编码.因为我知道这里有一个奇怪的东西%3D和+同时签名!但我确实需要实际的+号.当我做HttpContext.Current.Request.QueryString ["paymentID"]时,不知何故它被解码到空间.
我只想提取用户输入的实际付款ID.最好的方法是什么?
谢谢.
该挑战采用一个称为jeff
输入的查询参数,并将其存储在名为 的变量中jeff
。挑战的目标是在页面上加载警报框。该解决方案使用连字符在函数内运行 Javascript eval()
。
所以,我们有这样的评估:
eval(`ma = "Ma name ${jeff}"`)
Run Code Online (Sandbox Code Playgroud)
获得警报框的解决方案输入是(剧透警报!没有双关语。):
"-alert(1337)-"
Run Code Online (Sandbox Code Playgroud)
现在,我迫切需要了解 Javascript 如何处理这些连字符!帮助!?
我有下面的网址,
http://localhost:34349/page.aspx?RUD=Pby0lPWu+dc=
Run Code Online (Sandbox Code Playgroud)
如果我在page.cs加载方法中使用下面的代码
string result = Request.QueryString["RUD"].ToString();
Run Code Online (Sandbox Code Playgroud)
结果显示低于值
Pby0lPWu dc=
Run Code Online (Sandbox Code Playgroud)
Request.QueryString中缺少" + "字符.我在asp.net中使用查询字符时完全错过的地方?
javascript ×3
asp.net ×2
c# ×2
.net ×1
encoding ×1
query-string ×1
url ×1
url-encoding ×1
urldecode ×1
vue-router ×1
vue.js ×1
xss ×1