[pc][spam]Javascriptを利用したコメントスパム対策
submitボタンを画像にして、画像上のどこを押されたのか位置情報を得る、というのも手軽に出来るし、javascriptなしでいけるためいいなと思うのだけど、これってTabキーとEnterでsubmit押したときにも誤認識されずにいけるのだろうか?
…どうなんでしょう? というわけで実験してみました。
簡単なWebフォームを用意して送信されるデータを確認してみました。submit操作には画像ボタン(<input type="image">)を使用します。画像をマウスクリックすると,送信データにはマウスクリックされた位置情報が含まれますが,フォームの送信をキーボードショートカットで行なった場合にどうなるのかということです。
case 1
case 2
case 3
結果
|
(btn.x,btn.y) |
| Firefox 1.5 | IE 6.0 | Netscape 7.1 | Opera 9.1 |
| case1.Enterキーを押下してsubmit |
(0,0) |
| case1.アクセスキーでsubmit |
(0,0) |
accesskey の指定は無効? |
| case2.ALTテキストをマウスクリック |
クリックされた箇所によらず空文字 |
クリックされた座標を返す |
送信されるデータにパラメータが含まれない |
クリックされた座標を返す |
| case2.Enterキーを押下してsubmit |
空文字 |
(0,0) |
送信されるデータにパラメータが含まれない |
(0,0) |
| case2.アクセスキーでsubmit |
無反応でsubmitできない |
(0,0) |
無反応でsubmitできない |
accesskey の指定は無効? |
| case3.JavaScriptでフォームを送信する |
送信されるデータにパラメータが含まれない |
※いずれも
Windows XP Professionalで
実験
case1.とcase3.では各ブラウザで動作にそれほど大きな差はありませんが,case2.の指定された画像ファイルが見つからない場合ではそれぞれ動作が異なるようです。また,キーボードでsubmitする場合でも,以前にマウスクリックでsubmitしていた場合,その値を記憶して(?)しまうようです(Firefox1.5で確認)
この記事を読んだ人はこんな記事も読んでいます
ブラウザ
HTML, GTML, YTML, UTML, JTML, NTML, BTML, HRML, H5ML, H6ML, HYML, HGML, HFML, HTNL, HTJL, HTKL, HTMK, HTMO, HTMP
Web, Qeb, 2eb, 3eb, Eeb, Seb, Aeb, WWb, W3b, WRb, WDb, WSb, WeV, WeG, WeH, WeN
Firefox, Direfox, Rirefox, Tirefox, Girefox, Virefox, Cirefox, FUrefox, F8refox, F9refox, FOrefox, FKrefox, FJrefox, FiEefox, Fi4efox, Fi5efox, FiTefox, FiFefox, FiDefox, FirWfox, Fir3fox, FirRfox, FirDfox, FirSfox, FireDox, FireRox, FireTox, FireGox, FireVox, FireCox, FirefIx, Firef9x, Firef0x, FirefPx, FirefLx, FirefKx, FirefoZ, FirefoS, FirefoD, FirefoC
JavaScript, HavaScript, UavaScript, IavaScript, KavaScript, MavaScript, NavaScript, JQvaScript, JWvaScript, JSvaScript, JZvaScript, JaCaScript, JaFaScript, JaGaScript, JaBaScript, JavQScript, JavWScript, JavSScript, JavZScript, JavaAcript, JavaWcript, JavaEcript, JavaDcript, JavaXcript, JavaZcript, JavaSXript, JavaSDript, JavaSFript, JavaSVript, JavaScEipt, JavaSc4ipt, JavaSc5ipt, JavaScTipt, JavaScFipt, JavaScDipt, JavaScrUpt, JavaScr8pt, JavaScr9pt, JavaScrOpt, JavaScrKpt, JavaScrJpt, JavaScriOt, JavaScri0t, JavaScri-t, JavaScriLt, JavaScripR, JavaScrip5, JavaScrip6, JavaScripY, JavaScripG, JavaScripF
寄せられたコメント (全 2 件中、最新 5 件まで表示しています)
はじめまして。
operaのアクセスキーは、Shift+Escのあとに、指定されたキーを
押します。
自分も実験して試してみなくちゃ、と思ってたんですが、まだやってなかったので参考になりました。
マウスでクリックしなくても送られてくるのですね。これは使えそうです。
あとは、携帯から書き込まれる場合も送られるのかどうか、確認したいところです。
もし携帯からは送られないのだとしても、IP調べて携帯だったらこのフィルタは無視
ということで対応できると考えてます。