相关疑难解决方法(0)

用于强制限制的"Origin"http标头的兼容性

我正在构建RESTful JSON api,我担心json数据被盗跨站点请求伪造.

为解决这两个问题而创建的一个很好的解决方案是Origin http标头.但是我担心这种方法与所有现代浏览器都不兼容.这是一个有效的问题吗?由于兼容性问题,Origin http标头是否无用?在执行HTTP引用检查时是否应该考虑原点?

browser security rest json http

13
推荐指数
1
解决办法
3360
查看次数

是否可以在现代浏览器上进行"JSON劫持"?

最近我读了一些关于'JSON劫持'的文章,其中一些是在这里.

所以,我尝试在我的浏览器,Chrome 17(dev),Firefox 8和IE8上进行以下操作.

  • override Object或Array构造函数
  • 修改__defineSetter__方法
  • 修改defineProperty方法

但我无法对(文字)JSON数据做任何事情.

"JSON劫持"问题是否都在现代浏览器上解决了?或者我该如何重现它?

javascript json

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

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

Facebook突然可以防止JSON劫持吗?

众所周知,当旧浏览器的Array ctor和Object ctor重载时,Facebook使用javascript响应(JS,而不是json)作为前缀while(1)for(;;);,以防止脚本标签窃取json数据

但是从最近的尝试来看,似乎不再是这种情况了(对于朋友列表,我确定它已经被使用了)

在此处输入图片说明

注意,现在,content-type是:

content-type: application/octet-stream

但是他们为什么这样做呢?现在安全吗?(我知道这是针对较旧的浏览器的,但仍然...)。

我知道的[..]问题是有问题的。但是{..}ctor呢?

题:

Facebook为什么要删除无限循环?以及他们现在如何缓解json劫持?

我的意思是,如果<script>tag尝试获取“ getFiriends”列表,现在会发生什么?(在非常老的浏览器中)

NB

值得一提的是,还有其他答案带有无限循环{..}!:

在此处输入图片说明

同样在这里(对象,无限循环)

在此处输入图片说明

javascript security json facebook cross-domain

6
推荐指数
1
解决办法
229
查看次数

为什么这个JSON响应有无限循环的代码?

如果您浏览某些ISO页面(例如页面)并在鼠标悬停在项目上时查看网络通信,则JSON响应始终for(;;);在使用实际JSON标记之前开始.

除了试图惩罚使用eval()解析JSON的人之外,还有一个很好的理由吗?例如,它是防御某个攻击媒介的最佳做法吗?

javascript json

5
推荐指数
0
解决办法
184
查看次数

为什么中号的API在while(1)之前加到JSONP响应中?

只是对https://medium.com感到好奇,我看到他们在搜索页面上发出了自动ajax GET请求,我打开了萤火虫(出于好奇),并得到如下结果:

(我输入了搜索词组sen以触​​发GEThttps://medium.com/search/all?q=sen的请求。请注意,如果您打开它,则它仅会收到ajax请求,因此无法正常工作)

])}while(1);</x>{"success":true,"payload":{"value":{"posts":[{"id":"748b78360917","versionId":"9fbac25a3c7c","creatorId":"29fed3d34b82","homeCollectionId":"e196dfdf4b5d","title":"Nous sommes des clients, pas des usagers. Et ça change tout" // MORE JSON RESPONSE FROM SERVER....

现在的问题不在于JSON零件,我想知道])}while(1);</x>响应中的含义是什么?目的是什么?

更新, 我知道这while(1)是无限循环的,但是为什么要这样做呢?

更新 我读了类似的问题,现在我知道使用'while(1)'是为了防止json劫持,但是''])} while(1);' 部分仍然令人困惑,为什么要使用'])}'和''?'while(1)'还不够吗?

javascript api rest json get

5
推荐指数
0
解决办法
183
查看次数

如何获取 HTML 中每个 href 的所有元素作为行并将其添加到 pandas 数据框中?

我试图从以下网站获取每个 href 元素内的不同值: https: //www.bmv.com.mx/es/mercados/capitales

\n

href对于HTML 文件中的每个不同元素,应有 1 行与提供的标题上的每个字段相匹配。

\n

这是我试图抓取的 HTML 部分之一:

\n
\n  <tbody>\n    \n  <tr role="row" class="odd">\n<td class="sorting_1"><a href="/es/mercados/cotizacion/1959">AC\n  \n</a></td><td><span class="series">*</span>\n</td><td>03:20</td><td><span class="color-2">191.04\n\n</span></td><td>191.32</td>\n<td>194.51</td>\n<td>193.92</td>\n<td>191.01</td>\n<td>380,544</td>\n<td>73,122,008.42</td>\n<td>2,793</td>\n<td>-3.19</td><td>-1.64</td></tr><tr role="row" class="even">\n  <td class="sorting_1"><a href="/es/mercados/cotizacion/203">ACCELSA</a>\n  </td>\n  <td><span class="series">B</span>\n  </td><td>03:20</td><td>\n    <span class="">22.5</span></td><td>0</td>\n    <td>22.5</td><td>0</td><td>0\n\n    </td><td>3</td><td>67.20</td>\n    <td>1</td><td>0</td><td>0</td></tr>\n    <tr role="row" class="odd">\n      <td class="sorting_1">\n        <a href="/es/mercados/cotizacion/6096">ACTINVR</a></td>\n      <td><span class="series">B</span></td><td>03:20</td><td>\n        <span class="">15.13</span></td><td>0</td><td>15.13</td><td>0</td>\n        <td>0</td><td>13</td><td>196.69</td><td>4</td><td>0</td>\n        <td>0</td></tr><tr role="row" class="even"><td class="sorting_1">\n          <a href="/es/mercados/cotizacion/339083">AGUA</a></td>\n          <td><span class="series">*</span>\n          </td><td>03:20</td><td>\n            <span class="color-1">29</span>\n          </td><td>28.98</td><td>28.09</td>\n            <td>29</td><td>28</td><td>296,871</td>\n            <td>8,491,144.74</td><td>2,104</td><td>0.89</td>\n            <td>3.17</td></tr><tr role="row" class="odd"><td class="sorting_1">\n              <a href="/es/mercados/cotizacion/30">ALFA</a></td><td><span class="series">A</span></td>\n              <td>03:20</td>\n              <td><span class="color-2">13.48</span>\n              </td><td>13.46</td>\n              <td>13.53</td><td>13.62</td><td>13.32</td>\n              <td>2,706,398</td>\n …
Run Code Online (Sandbox Code Playgroud)

python dataframe web-scraping pandas python-requests

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

Symfony 存储 foreach 循环的结果

我想知道是否可以存储 foreach 循环的结果。我不知道如何更详细地解释我的问题。

所以可以说以下让我得到 3 个不同的数组

$events = $this->getDoctrine()->getRepository('TestBundle:Events')->findBy(array('event' => $eventId));
Run Code Online (Sandbox Code Playgroud)

#name,color#

1. 派对,粉色
2. 泳池派对,蓝色
3. 生日,红色

foreach $events避免非对象调用。

foreach($events as $e)
{
    $name = $e->getName();
    $color = $e->getColor();
}
Run Code Online (Sandbox Code Playgroud)

现在我可以将数组返回到 twig 并 for 循环它们,但是我可以将它们存储到控制器中的数组中吗?

我当前的代码

$events = 
$this->getDoctrine()->getRepository('TestBundle:Events')->findBy(array('event' => $eventId));

foreach($events as $e)
{                   
    $name = $e->getName();
    $color = $e->getColor();

    $array = array(array("$name", "$color"));
}

return new JsonResponse($array);
Run Code Online (Sandbox Code Playgroud)

这样我只得到最后一个数组。在本例中,生日为红色。希望有人能帮我解答我的问题。感谢您抽出时间!

php symfony

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

从 Tableau 地图中抓取数据

我正在尝试提取伊利诺伊州纳洛酮配送中心的位置和名称,以用于阿片类药物危机的研究项目。

公共卫生部可从这里访问此表格生成的仪表板https://idph.illinois.gov/OpioidDataDashboard/

我已经尝试了我能找到的一切。首先更改 URL 以使用 Tableau 的界面“下载”数据。那只能让我下载 pdf 地图,而不是其背后的实际数据集。其次,我修改了我在 Stack Overflow 上见过几次的 python 脚本来尝试请求数据。但是,我认为它遇到了某种错误。代码如下。

url = "https://interactive.data.illinois.gov/t/DPH/views/opioidTDWEB_prod/NaloxoneDistributionLocations"

r = requests.get(
    url,
    params= {
        ":embed":"y",
        ":showAppBanner":"false",
        ":showShareOptions":"true",
        ":display_count":"no",
        "showVizHome": "no"
    }
)
soup = BeautifulSoup(r.text, "html.parser")
print(soup)
tableauData = json.loads(soup.find("textarea",{"id": "tsConfigContainer"}).text)

dataUrl = f'https://tableau.ons.org.br{tableauData["vizql_root"]}/bootstrapSession/sessions/{tableauData["sessionid"]}'

r = requests.post(dataUrl, data= {
    "sheet_id": tableauData["sheetId"],
})

dataReg = re.search('\d+;({.*})\d+;({.*})', r.text, re.MULTILINE)
info = json.loads(dataReg.group(1))
data = json.loads(dataReg.group(2))

print(data["secondaryInfo"]["presModelMap"]["dataDictionary"]["presModelHolder"]["genDataDictionaryPresModel"]["dataSegments"]["0"]["dataColumns"])

Run Code Online (Sandbox Code Playgroud)

感谢任何帮助。

python screen-scraping web-scraping tableau-api

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

如何加载JSON和拆分响应字符串?

我有一个返回JSON的网址,但返回字符串的开头是

])}while(1);</x>{"success":true,"payload":{"value":

我想拆分])}while(1);</x>并查看该split数组的[1]值。

现在我在做

fetch(jsonURL)
  .then(res => {
    console.log(res); 
  });
Run Code Online (Sandbox Code Playgroud)

通常情况下,我会在处分裂,console.log但遇到以下错误:

天才程序员的神话9381a884591e:1未捕获(承诺)SyntaxError:JSON中位置0处的意外令牌]

javascript json

0
推荐指数
1
解决办法
54
查看次数