Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
私有javascript小部件_Javascript_Security_Widget - Fatal编程技术网

私有javascript小部件

私有javascript小部件,javascript,security,widget,Javascript,Security,Widget,我正在考虑开始一个新项目。该项目的前提是在我的网站上生成一个小部件,然后将一段javascript复制到你的网站中,viola你就有了小部件 这是对现有服务的一种新的补充,如polldady.com、twig.com和addthis.com 这些服务中的许多都是为公众访问而设计的。这意味着小部件供应商不关心您是否将数据发回给他们。事实上,他们鼓励尽可能广泛地传播小部件 然而,我的服务有一个独特的转折点。在我的例子中,虽然小部件将对公众开放,但我需要确保发起的post请求仅来自预期的站点 由于这些

我正在考虑开始一个新项目。该项目的前提是在我的网站上生成一个小部件,然后将一段javascript复制到你的网站中,viola你就有了小部件

这是对现有服务的一种新的补充,如polldady.com、twig.com和addthis.com

这些服务中的许多都是为公众访问而设计的。这意味着小部件供应商不关心您是否将数据发回给他们。事实上,他们鼓励尽可能广泛地传播小部件

然而,我的服务有一个独特的转折点。在我的例子中,虽然小部件将对公众开放,但我需要确保发起的post请求仅来自预期的站点

由于这些javascript小部件存在xss问题,我需要动态创建一个iframe,在其中呈现我的小部件


是否有一个身份验证模型来处理这种类型的交互?

首先,使用iframe违反了。使用普通的旧JavaScript,您可以创建一个
并调用
.submit()
,在任何地方发出此post请求。事实上,这就是基于POST的CSRF利用的工作原理。您可以检查此POST请求的
referer
,但是如果它来自https页面,则此值将为空。(这样你就可以拒绝服务了…)。将
document.location
作为POST变量发送是不可取的,因为修改此小部件以报告修改后的值很简单。但是,传入http请求中包含的referer是。

(函数(){
var makeCar=函数(){
//私有变量
var燃料=0;
控制台日志(“呼叫新车”);
//私有方法
函数burnFuel(){
燃料-=10;
控制台日志(“燃烧的燃料[10]”);
}
返回{
检查:函数(){
控制台日志(“检查燃料:+燃料);
},	   
加速:函数(){
如果(燃油>0){
燃烧燃料();
}否则{
console.log('汽油用完,现在加油');
}
},
填充气体:功能(气体){
如果(燃料)