小编Sam*_*mul的帖子

XMLHttpRequest同源策略

我花了最后3天研究如何使用XMLHttpRequest创建跨域请求.最好的替代方案确实是我已经使用的JSONP.

但我还有一个问题,我无法找到答案.我阅读了数百个帖子(包括SO),没有人有一个很好的可靠回答(很好的参考).希望有人可以提供帮助.

说,我在许多网站上读到,由于安全原因,我无法从域aaa.com向bbb.com发出Ajax请求并获取我想要的数据.这很清楚,我对此毫无疑问.但问题是当我在我的localhost中运行下面的代码时(所以我的域名是"localhost",我不应该从另一个域请求任何数据).

xhReq = new XMLHttpRequest();
xhReq.open("GET","http://domain.com?parameter",true);
xhReq.send(null);
Run Code Online (Sandbox Code Playgroud)

当我检查Firebug Net选项卡时,我发现请求未被阻止!明确要求.我简直不敢相信.所以我在domain.com/log.php中创建了一个文件,在那里我可以记录任何访问我域名的请求.令人惊讶的是,我解雇localhost的所有请求都是我的域名网站.当我尝试获取响应时,由于我的Chrome和FIrebug浏览器的原始策略相同,我实在无法得到它.但我真的很惊讶,尽管我无法操纵响应,但请求真的打到了网络服务器.

更令人惊讶的是,如果domain.com/log.php生成一个像1MB这样大的响应,我的firebug告诉我浏览器确实从网络服务器下载了所有1MB,并且最后它按预期显示"拒绝访问"消息.因此,如果相同的原始策略禁止读取该数据,为什么要下载所有文件.

最后,我让我惊讶的是,我读到的所有网站和规范都说非常清楚,当目标域与源域不匹配时,使用Ajax阻止了请求.但显然,通过我的实验,尽管我无法访问响应数据,但请求仍在完成.

令我不安的是,它可能会打开一个大的安全漏洞,每天有数千个视图的网站可以运行这个3行代码,并在一个不友好的网站上引起巨大的Ddos攻击,只是让用户在另一个网站请求一个页面由于浏览器不会阻止请求,因此间隔较小.

我在IE 7,8和9以及Chrome最新和Firefox最新版本中测试了这个脚本,行为是相同的:请求已完成,浏览器下载了所有响应,但没有让它可以执行SOP.

希望有人可以解释为什么规格是如此错误或者我理解错误!

javascript ajax xmlhttprequest

11
推荐指数
1
解决办法
5384
查看次数

跨域AJAX请求未被阻止:这是一个安全漏洞吗?

我花了最后3天研究如何使用XMLHttpRequest创建跨域请求.最好的替代方案确实是我已经使用的JSONP.

但我还有一个问题,我无法找到答案.我阅读了数百个帖子(包括SO),没有人有一个很好的可靠回答(很好的参考).希望有人可以提供帮助.

说,我在许多网站上读到,由于安全原因,我无法从域example.com到yyy.com发出Ajax请求并获取我想要的数据.这很清楚,我对此毫无疑问.但问题是当我在我的localhost中运行下面的代码时(所以我的域名是"localhost",我不应该从另一个域请求任何数据).

xhReq = new XMLHttpRequest();
xhReq.open("GET","http://domain.com.br?parameter",true);
xhReq.send(null);
Run Code Online (Sandbox Code Playgroud)

当我检查Firebug Net选项卡时,我发现请求未被阻止!明确要求.我简直不敢相信.所以我在domain.com.br/log.php中创建了一个文件,在那里我可以记录任何命中我域名的请求.令人惊讶的是,我解雇localhost的所有请求都是我的domain.com.br.当我尝试获取响应时,由于我的Chrome和FIrebug浏览器的原始策略相同,我实在无法得到它.但我真的很惊讶,尽管我无法操纵响应,但请求真的打到了网络服务器.

更令人惊讶的是,如果domain.com.br/log.php生成一个像1MB大的响应,我的firebug告诉我浏览器确实从网络服务器下载了所有1MB,最后它显示一条消息"拒绝访问"预期.因此,如果相同的原始策略禁止读取该数据,为什么要下载所有文件.

最后,我让我惊讶的是,我读到的所有网站和规范都说非常清楚,当目标域与源域不匹配时,使用Ajax阻止了请求.但显然,通过我的实验,尽管我无法访问响应数据,但请求仍在完成.

令我不安的是,它可能会打开一个大的安全漏洞,每天有数千个视图的网站可以运行这个3行代码,并在一个不友好的网站上引起巨大的Ddos攻击,只是让用户在另一个网站请求一个页面由于浏览器不会阻止请求,因此间隔较小.

我在IE 7,8和9以及Chrome最新和Firefox最新版本中测试了这个脚本,行为是相同的:请求已完成,浏览器下载了所有响应,但没有让它可以执行SOP.

希望有人可以解释为什么规格是如此错误或者我理解错误!

javascript ajax http cross-domain

7
推荐指数
1
解决办法
1845
查看次数

Cronjob检测上次修改过的文件

我想每分钟运行一个cronjob来检测特定目录(大约300.000 inode)中最后一分钟更改的所有文件,并将此文件列表导出到csv.

是否可以运行优化命令来执行此操作?我无法在此目录中运行带有排序标志的"查找",因为它很大,运行所有文件可能需要1分钟以上.

有什么命令可以做到吗?或者在服务器的后台运行任何特定的程序,记录每个已更改的文件?如果有一个使用PHP的命令来执行此操作我很好,我可以创建一个cron来执行PHP脚本,没问题.

php apache shell server

5
推荐指数
1
解决办法
587
查看次数

如何从 Chrome Dev Tools 中获取“Coverage”数据

我在我的 Chrome 开发工具中使用 Coverage 选项卡,我有一个非常大的文件,在玩了很多次 Coverage 之后,很明显我的 CSS 代码只使用了 15% 的代码(我模拟了按钮按下、悬停菜单.. .)

问题是从 Coverage 选项卡中删除了 15% 的代码。我不敢相信这个非常好的功能背后的开发人员没有想到一个简单的方法让最终用户只复制代码的绿色部分。检查附上的图像。

你知道我怎么做吗?我阅读了一些关于使用 Puppeteers 的内容,但这需要大量准备。在最新的 Canary 版本中,我似乎可以导出 JSON,但需要一些时间将解析器编码为该 JSON,以便仅提取所需的部分。

在此处输入图片说明

google-chrome

5
推荐指数
2
解决办法
3593
查看次数

使用 CSS 添加带有 :hover 的类

我首先说我不能使用 javascript。

所以我的问题是:当鼠标悬停在元素上时,我希望能够向元素添加一个类。我无法将样式添加到 :hover 中,因为它们很多。

我在我的页面中使用 animate.css。有很多效果,例如我想在用户悬停页面中的元素时添加类“fadeInUp”。用 javascript 做这件事很简单,但是 css 呢?是否可以在 :hover 时添加类?

html css styles

4
推荐指数
1
解决办法
2万
查看次数

高度100%高度,内嵌显示

我需要有2列divs.

右列将具有随机内容,其可具有1行或100行.

我想在没有javascript的情况下跟踪右列的高度.

我在尝试这个:

<div>
   <div style="display:inline-block; width:30%; vertical-align:top; height:100%; background:#FF0000;">
   </div>
   <div style="display:inline-block; width:30%; vertical-align:top;">
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
      <div>CONTENT</div>
   </div>
</div>
Run Code Online (Sandbox Code Playgroud)

问题是左列总是高度为0px,它应该显示一个与右列相同大小的红色列.

那么如何使用div做到这一点?

编辑

Rick Hitchcock的回答非常好,但不适用于Firefox.还有其他建议吗?

html css

3
推荐指数
1
解决办法
4342
查看次数

使用 query_string 设置的标头

我正在运行 apache,并且仅当请求在查询字符串上具有变量“q”时才尝试设置标头 Foo=bar。我想在我的 htaccess 中做这样的事情:

<RequestUri "q=">
    Header set Foor "bar"
</RequestUri>
Run Code Online (Sandbox Code Playgroud)

当然这是行不通的。我已经尝试使用“Location”和“LocationMatch”,但在 htaccess 中不允许使用这些。那我该怎么做呢?

apache .htaccess

3
推荐指数
1
解决办法
1123
查看次数

使用apache检查请求中是否存在标头

如何检查标题是否存在。我不想检查值是否与 "" 不同我想检查它是否真的存在使用:

重写条件

我怎样才能在 htaccess 文件中做到这一点?

apache .htaccess

3
推荐指数
2
解决办法
2万
查看次数

将模板的输出获取到变量而不是 STDOUT

我正在使用templatesGolang,有时我会使用以下代码:

t.Execute(os.Stdout, xxx);
Run Code Online (Sandbox Code Playgroud)

上面的代码将模板输出到屏幕(因为os.Stdout),但我希望将其分配给变量,例如

var temp string;
e := t.Execute(temp, xxx);
Run Code Online (Sandbox Code Playgroud)

但当然,这段代码不起作用。那么我该怎么做呢?

go

3
推荐指数
1
解决办法
1167
查看次数

如何检查数组索引是否存在?

我有这个变量cp := [][][][]map[string]float64{}

如何检查元素是否cp[1][5][0][7]已设置?

我知道我可以使用类似的东西val,error := cp[1][5][0][7];,但它不起作用(也许它只适用于其他变量类型)。

我正在使用下面的代码,但我认为可能有一种更简单/更好的方法。

if ((len(cp) > 0) && (len(cp[1]) > 0) && (len(cp[1][5]) > 0) && (len(cp[1][5][0]) > 0) && (len(cp[1][5][0][7]) > 0) ) {
    os.Println("is set");
}
Run Code Online (Sandbox Code Playgroud)

那么我怎样才能做到这一点呢?

go

3
推荐指数
1
解决办法
1万
查看次数