アスタリスクで隠されたパスワードを確認

アスタリスクで隠されたパスワードを確認

アスタリスクで隠されたパスワードを確認する方法

javascript:(function(){var s,F,j,f,i; s = ""; F = document.forms; for(j=0; j<F.length; ++j) { f = F[j]; for (i=0; i<f.length; ++i) { if (f[i].type.toLowerCase() == "password") s += f[i].value + "\n"; } } if (s) alert("Passwords in forms on this page:\n\n" + s); else alert("There are no passwords in forms on this page.");})();

こういうのを見ると、無意味にコードを短くしたくなる変な癖がある。

ということで、簡単にして短縮したのが↓

javascript:for(var i=0,s='',e=document.getElementsByTagName('input');i<e.length;i++)if(e[i].type=='password')s+=e[i].value+'\n';alert(s||'no passwords')

ブックマーク

元のバージョンはdocument.formsを走査しているので、form要素の中のパスワードフィールドしか拾えないっぽいので、document.getElementsByTagName('input')で全input要素を取得するように改造。

(function() { ... })()でくくってないから変数汚染を起こす可能性があるが、問題になる可能性は低い。どうしても変数汚染を避けたければ↓のバージョンで。

javascript:(function(i,s,e){for(;i<e.length;i++)if(e[i].type=='password')s+=e[i].value+'\n';alert(s||'no passwords')})(0,'',document.getElementsByTagName('input'))

ブックマーク

車輪の再発明

ってことはわかってるんだけど、何でこんなことをやってしまうんだろうな。

追記1

弾さんが同じことやってた!

追記2

id:amachangさんだったら、document#evaluate()を使って

javascript:(function(s,e,t){while(t=e.iterateNext())s+=t.value+'\n';alert(s||'no passwords')})('',document.evaluate('//input[@type="password"]',document.body,null,XPathResult.ANY_TYPE,null));

ってやったりするのかなー

スポンサーサイト

トラックバック URL

http://liosk.blog103.fc2.com/tb.php/57-d1fb8c16

トラックバック

コメント

コメントの投稿

お名前
コメント
編集キー