澳门太阳娱乐集团官网-太阳集团太阳娱乐登录

How to get the query string by javascript?,querystring
分类:网页制作

即利用了 https 也不用通过 query strings 传敏感数据

2017/10/16 · 基本功本事 · HTTPS

本文由 伯乐在线 - xiaoheike 翻译,艾凌风 校稿。未经许可,禁止转发!
日文出处:HttpWatch。款待插手翻译组。

劳务器端的 log 将公开记下完整 url;浏览器上的拜望历史也会当面记下完整 url;Referrer headers 里也忠实记下一体化 url,然后在别人家的 谷歌(Google)Analytics 上海展览中心示。

咱俩平时听到的两个宽广难题是:“URL 中的参数是还是不是足以安枕而卧地传递到安全网址?”这些主题素材平常出现在客商看了 HttpWatch 捕获的 HTTPS 须要后,想精通还恐怕有哪个人能够看到这几个数据。

 

举个例子,假使在一个询问中,使用如下安全的 URL 传递密码字符串:

HttpWatch 能够突显安全供给的剧情,因为它与浏览器集成,因而它亦可在 HTTPS 请求的 SSL 连接对数据加密从前查看数据。图片 1

若是您使用网络嗅探器查看,举例 Network Monitor,对于同三个央求,你只好够查阅加密之后的数码。在数量包追踪中并未有可知的网站,标题或内容:

图片 2

你能够信任 HTTPS 央浼是安枕无忧的,只要:

  • 未忽略任何SSL证书警告
  • Web 服务器用于运行 SSL 连接的私钥在 Web 服务器本人之外不可用。

于是,在网络规模,URL 参数是平安的,不过还会有部分别样根据 URL 泄漏数据的章程:

  1. URL 存款和储蓄在 Web 服务器日志中–平日各种供给的一体化 URL 都被贮存在服务器日志中。这意味 URL 中的任何敏感数据(比如密码)会以公开情势保留在服务器上。以下是行使查询字符串通过 HTTPS 发送密码时存款和储蓄在 httpwatch.com 服务器日志中的条款: **二〇〇九-02-20 10:18:27 W3SVC4326 WWW 208.101.31.210 GET /Default.htm password=mypassword 443 … 经常以为即就是在服务器上,积存明文密码一向都不是好主见 2.URLs are stored in the browser history – browsers save URL parameters in their history even if the secure pages themselves are not cached. Here’s the IE history displaying the URL parameter:
  2. URL 存款和储蓄在浏览器历史记录中–就算安全网页自乙丑缓存,浏览器也会将 URL 参数保存在其历史记录中。以下是 IE 的历史记录,彰显了 URL 的呼吁参数:图片 3

假设顾客创设书签,查询字符串参数也将被置放。

  1. URLReferrer 央浼头中被传送–假若三个康宁网页使用能源,举个例子 javascript,图片也许分析服务,URL 将通过 Referrer 央求头传递到每四个内置对象。有时,查询字符串参数恐怕被传送并寄存在第三方站点。在 HttpWatch 中,你能够看来大家的密码字符串正被发送到 Google Analytics图片 4

结论

解决那几个难点亟待两步:

  • 独有在相对供给的情景下传递敏感数据。一旦客户被验证,最棒使用具有有限生命周期的会话 ID 来标志它们。

利用会话层级的 cookies 传递音信的长处是:

  • 它们不会蕴藏在浏览器历史记录中或磁盘上
  • 它们平常不存款和储蓄在服务器日志中
  • 它们不会传送到嵌入式财富,举个例子图片或 JavaScript
  • 它们仅适用于央浼它们的域和路线

以下是大家的在线公司中,用于识别用户的 ASP.NET 会话 cookie 示例:

图片 5

请注意,cookie 被限定在域 store.httpwatch.com,而且在浏览器会话停止时过期(即不会蕴藏到磁盘)。

你本来能够因而 HTTPS 传递查询字符串,可是不要在恐怕出现安全难题的场所下采纳。比方,你能够高枕而卧的运用它们显示部分数字或然项目,像 accountview 或者 printpage,但是不用选用它们传递密码,银行卡号码或许其余不应当公开的新闻。

1 赞 收藏 评论

How to get the query string by javascript?,querystring

1.html:

<a href="2.html?name=geovindu&sex=woman&age=12">test getQueryString</a>

2.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>javascript获取url参数和script标签中获取url参数</title>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="js1.js?a=abc&b=汉字&c=123"></script>
<script type="text/javascript">
//lastest: url paramter: //测试链接:<a href="2.html?name=geovindu&sex=woman&age=12">test getQueryString</a>
var queryStrings=function() {//get url querystring
    var params=document.location.search,reg=/(?:^?|&)(.*?)=(.*?)(?=&|$)/g,temp,args={};
    while((temp=reg.exec(params))!=null) args[temp[1]]=decodeURIComponent(temp[2]);
    return args;
};
//只取一个:
var queryString=function(key){
    return (document.location.search.match(new RegExp("(?:^\?|&)"+key+"=(.*?)(?=&|$)"))||['',null])[1];
}




</script>
</head>

<body>
<div id="urlparamter"></div>
<div id="all"></div>
<div id="scriptparamter"></div>
<div id="allscript"></div>
<script type="text/javascript">
var args=queryStrings();
document.getElementById("all").innerHTML=args.name+" | "+args.sex+" | "+args.age+",all";
//alert(args.name+" | "+args.sex+" | "+args.age);
var argsname=queryString("name");
var argssex=queryString("sex");
var argsage=queryString("age");
document.getElementById("urlparamter").innerHTML =argsname+","+argssex+","+argsage;


</script>
</body>

</html>

  js1.js:

/*http://css.dusystem.com/example/index.html
window.location.protocol = "http:"
window.location.host = "css.dusystem.com"
window.location.pathname = "example/index.html"
http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript
http://www.cnblogs.com/sohighthesky/archive/2010/01/21/1653126.html
http://www.codeproject.com/Tips/574956/How-to-get-URL-and-QueryString-value-in-an-ASP-NET

test: <a href="1.html?id=5&type=1&flag=0" title="d">test</a>
*/

var strget="du";

function getArgs(strParame) 
{
var args = new Object( );
var query = location.search.substring(1); // Get query string
var pairs = query.split("&"); // Break at ampersand
for(var i = 0; i < pairs.length; i++) {
var pos = pairs[i].indexOf('='); // Look for "name=value"
if (pos == -1) continue; // If not found, skip
var argname = pairs[i].substring(0,pos); // Extract the name
var value = pairs[i].substring(pos+1); // Extract the value
value = decodeURIComponent(value); // Decode it, if needed
args[argname] = value; // Store as a property
}
return args[strParame]; // Return the object
}

//script paramter:
var getScriptArgs=function(){
//获取多个参数
    var scripts=document.getElementsByTagName("script"),
    script=scripts[scripts.length-1],//因为当前dom加载时后面的script标签还未加载,所以最后一个就是当前的script
    src=script.src,
    reg=/(?:?|&)(.*?)=(.*?)(?=&|$)/g,
    temp,res={};
    while((temp=reg.exec(src))!=null) res[temp[1]]=decodeURIComponent(temp[2]);
    return res;
};

//
var argsscript=getScriptArgs();
//document.getElementById("scriptparamter").innerHTML =argsscript.a+" | "+argsscript.b+" | "+argsscript.c;
strget=argsscript.a;
//alert(argsscript.a+" | "+argsscript.b+" | "+argsscript.c+","+strget);
//document.getElementById("txtput").value=strget;
//document.getElementById("scriptparamter").innerHTML ="ge";
//txtput

//假如上面的js是在这个js1.js的脚本中<script type="text/javascript" src="js1.js?a=abc&b=汉字&c=123//"><//script>

var getScriptArg=function(key){//获取单个参数
    var scripts=document.getElementsByTagName("script"),
    script=scripts[scripts.length-1],
    src=script.src;
    return (src.match(new RegExp("(?:^\?|&)"+key+"=(.*?)(?=&|$)"))||['',null])[1];
};
alert(getScriptArg("c"));


//set value
window.onload = function () {   

    getCommunitys(strget);
}

function getCommunitys(str) {
$("#scriptparamter")[0].innerHTML="ges";
//document.getElementById("scriptparamter").innerHTML =str;
document.getElementById("txtput").value=str;
}

  

to get the query string by javascript?,querystring 1.html: a href="2.html?name=geovindusex=womanage=12"test getQueryString/a 2.html: !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1...

有关我:xiaoheike

图片 6

简要介绍还没来得及写 :) 个人主页 · 作者的稿子 · 10 ·      

图片 7

1.html:

<a href="2.html?name=geovindu&sex=woman&age=12">test getQueryString</a>

2.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>javascript获取url参数和script标签中获取url参数</title>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="js1.js?a=abc&b=汉字&c=123"></script>
<script type="text/javascript">
//lastest: url paramter: //测试链接:<a href="2.html?name=geovindu&sex=woman&age=12">test getQueryString</a>
var queryStrings=function() {//get url querystring
    var params=document.location.search,reg=/(?:^?|&)(.*?)=(.*?)(?=&|$)/g,temp,args={};
    while((temp=reg.exec(params))!=null) args[temp[1]]=decodeURIComponent(temp[2]);
    return args;
};
//只取一个:
var queryString=function(key){
    return (document.location.search.match(new RegExp("(?:^\?|&)"+key+"=(.*?)(?=&|$)"))||['',null])[1];
}




</script>
</head>

<body>
<div id="urlparamter"></div>
<div id="all"></div>
<div id="scriptparamter"></div>
<div id="allscript"></div>
<script type="text/javascript">
var args=queryStrings();
document.getElementById("all").innerHTML=args.name+" | "+args.sex+" | "+args.age+",all";
//alert(args.name+" | "+args.sex+" | "+args.age);
var argsname=queryString("name");
var argssex=queryString("sex");
var argsage=queryString("age");
document.getElementById("urlparamter").innerHTML =argsname+","+argssex+","+argsage;


</script>
</body>

</html>

  js1.js:

/*http://css.dusystem.com/example/index.html
window.location.protocol = "http:"
window.location.host = "css.dusystem.com"
window.location.pathname = "example/index.html"
http://stackoverflow.com/questions/901115/how-can-i-get-query-string-values-in-javascript
http://www.cnblogs.com/sohighthesky/archive/2010/01/21/1653126.html
http://www.codeproject.com/Tips/574956/How-to-get-URL-and-QueryString-value-in-an-ASP-NET

test: <a href="1.html?id=5&type=1&flag=0" title="d">test</a>
*/

var strget="du";

function getArgs(strParame) 
{
var args = new Object( );
var query = location.search.substring(1); // Get query string
var pairs = query.split("&"); // Break at ampersand
for(var i = 0; i < pairs.length; i++) {
var pos = pairs[i].indexOf('='); // Look for "name=value"
if (pos == -1) continue; // If not found, skip
var argname = pairs[i].substring(0,pos); // Extract the name
var value = pairs[i].substring(pos+1); // Extract the value
value = decodeURIComponent(value); // Decode it, if needed
args[argname] = value; // Store as a property
}
return args[strParame]; // Return the object
}

//script paramter:
var getScriptArgs=function(){
//获取多个参数
    var scripts=document.getElementsByTagName("script"),
    script=scripts[scripts.length-1],//因为当前dom加载时后面的script标签还未加载,所以最后一个就是当前的script
    src=script.src,
    reg=/(?:?|&)(.*?)=(.*?)(?=&|$)/g,
    temp,res={};
    while((temp=reg.exec(src))!=null) res[temp[1]]=decodeURIComponent(temp[2]);
    return res;
};

//
var argsscript=getScriptArgs();
//document.getElementById("scriptparamter").innerHTML =argsscript.a+" | "+argsscript.b+" | "+argsscript.c;
strget=argsscript.a;
//alert(argsscript.a+" | "+argsscript.b+" | "+argsscript.c+","+strget);
//document.getElementById("txtput").value=strget;
//document.getElementById("scriptparamter").innerHTML ="ge";
//txtput

//假如上面的js是在这个js1.js的脚本中<script type="text/javascript" src="js1.js?a=abc&b=汉字&c=123//"><//script>

var getScriptArg=function(key){//获取单个参数
    var scripts=document.getElementsByTagName("script"),
    script=scripts[scripts.length-1],
    src=script.src;
    return (src.match(new RegExp("(?:^\?|&)"+key+"=(.*?)(?=&|$)"))||['',null])[1];
};
alert(getScriptArg("c"));


//set value
window.onload = function () {   

    getCommunitys(strget);
}

function getCommunitys(str) {
$("#scriptparamter")[0].innerHTML="ges";
//document.getElementById("scriptparamter").innerHTML =str;
document.getElementById("txtput").value=str;
}

  

本文由澳门太阳娱乐集团官网发布于网页制作,转载请注明出处:How to get the query string by javascript?,querystring

上一篇:没有了 下一篇:没有了
猜你喜欢
热门排行
精彩图文