0

我在一些地方看到您可以使用地址栏执行代码,所以为了测试它,我输入javascript:alert("hello");并按下[ENTER]但没有任何反应。

我什至尝试过其他人从这里编写的代码。

javascript:(function%20nomify(){var
%20shapes={"w_rect":["cookiemonstercrumbypicturesopen-o.gif","tumblr_mohxt1V6a91svhqpoo1_500.gif","tumblr_md0q05wMJb1rxis0k.gif","tumblr_ml0nmjWpX41snjjivo1_500.gif","cookie4.gif"],
"t_rect":["CookieMonster-Sitting.jpg","487961_10150955894571587_1215263686_n.jpg","534767_10151516100086587_1790492047_n.jpg","patientmonster.png"],
"square":["cookie_monster.jpg","935823_10151502554911587_1547641144_n.jpg","902502_10151355606796587_45192127_o.jpg","cookie-monster.jpg"]},
img_path="http://downloads.cdn.sesame.org/sw/OmNomNomify/";function%20chooseImg(shape){return%20img_path+shapes[shape]
[Math.floor(Math.random()*shapes[shape].length)]}function%20getShape(h,w)
{return%20h===w?"square":h>w?"t_rect":"w_rect"}var%20imgs=document.getElementsByTagName("img"),
img,h,w,shape;for(var%20i=0,len=imgs.length;i<len;i++){img=imgs[i],h=img.height,w=img.width,s=getShape(h,w);img.setAttribute("height",h);
img.setAttribute("width",w);img.src=chooseImg(s)};return%20void%200;})()

我正在运行 Firefox 24.0。

这是安全措施吗?我做错了吗?你真的可以使用地址栏执行代码吗?

4

1 回答 1

2

出于安全原因,Firefox 6 严格限制了通过地址栏使用 JavaScript 可以完成的操作。

https://bugzilla.mozilla.org/show_bug.cgi?id=656433

如果您打开错误控制台,您将看到一条消息,指示这alert是一个未定义的函数。

Chrome 将允许在地址栏中使用 JavaScript,但javascript:如果您将其复制+粘贴到其中(作为解决相同安全问题的不同方法),它将被删除。

于 2013-10-06T17:03:49.107 回答