• ベストアンサー

フォームバリデーションする際、js切っては考慮?

JavaScriptでフォームバリデーションを実装する際、ユーザがJavaScriptを切ってたらどうなるのでしょうか? ・普通は、その場合も考慮してサーバ側でもフォームバリデーションを実装するのでしょうか? ・それとも、警告を表示してJavaScriptをonにしてもらうのでしょうか? ・ここら辺は設計というか、個々の案件によって考え方が異なるのでしょうか? ・一般的にはどう実装するのが正しいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>普通は、その場合も考慮してサーバ側でもフォームバリデーションを実装するのでしょうか? あたりまえ。サーバ側ではリクエストの際の内容は何も信じちゃいけない。 だって自分が思っているフォームから来ているかすら怪しいでしょ? >それとも、警告を表示してJavaScriptをonにしてもらうのでしょうか? ほとんどの環境で最初から動いているものをわざわざ切っている人が警告を表示したくらいでONにしないし、 本当にJavaScriptが動かない環境もまだある。 >ここら辺は設計というか、個々の案件によって考え方が異なるのでしょうか? >一般的にはどう実装するのが正しいのでしょうか? JavaScriptはあくまでも補助。

re97
質問者

お礼

回答ありがとうございました。 >ほとんどの環境で最初から動いているものをわざわざ切っている人が警告を表示したくらいでONにしないし、 >本当にJavaScriptが動かない環境もまだある なるほど、と思いましたー

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.4

あ、ちなみに狭いイントラ内でのみのシステムとか、利用する人の人数が 小規模や環境が決まり切っていて、それ以外の人は利用できない前提 とした時は、そこまでガチガチにしなくてもいいでしょう。 当たり前に利用していて、異常データが処理されないようにだけ 対応する、というレベルで。 何か外部からの侵入によって攻撃対象とされるならば、そもそも そこへたどり着いてしまう部分を強化する、という考えのもとに。 本当はあまり良い対応ではありませんが、時と場合によりますよね。

re97
質問者

お礼

補足ありがとうございます。 >イントラ内でのみのシステムとか ・前提条件書き忘れていました ・ネット接続前提です

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

JavaScriptは、確認できる場合はクライアント側で確認する、という位置づけでしかありません。 通信経路や画面自体で値を改ざんされてサーバへ送られることも想定されるため、 サーバ側では、JavaScriptでチェックしてようがなんだろうか、一律チェックすべきです。

re97
質問者

お礼

回答ありがとうございました。 >サーバ側では、JavaScriptでチェックしてようがなんだろうか、一律チェックすべきです 参考になりましたー

全文を見る
すると、全ての回答が全文表示されます。
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

あくまで、javascriptは補助的手段です。 入力文字のチェック、次のコントロールへの移動など。  元々、受け取るサーバー側で処理をするのですから、javascriptで可能なことはサーバーで、もっと確実に可能です。サーバーにデータを送らず、クライアントサイドで完結するものでないのでしたら、javascriptのない環境で動作するように設計した上で、javascriptで補助するという形で設計します。 下記は基本中の基本ですから 【引用】____________ここから HTMLは、どんな環境からもWebの情報を利用できるようにすべきだという方針の下に開発されている。例えば、様々な解像度や色深度のグラフィックディスプレイを持つPCや、携帯電話、モバイル機器、音声入出力機器、帯域が広いコンピュータや狭いコンピュータ、等の環境である。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Introduction to HTML 4 (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/intro.html#h-2.2.1 )]より フォームには関係しませんが、 【引用】____________ここから Lynx などのテキスト ブラウザを使用して、サイトを確認します(ほとんどの検索エンジンのスパイダーには Lynx で見えるようにサイトが映ります)。JavaScript・・・【中略】・・・などの特殊な機能が使用されているためにサイトの一部がテキスト ブラウザで表示されない場合、検索エンジンのスパイダーがサイトをうまくクロールできない可能性があります。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[ウェブマスター向けガイドライン(品質に関するガイドライン) - ウェブマスター ツール ヘルプ( https://support.google.com/webmasters/answer/35769?hl=ja#2 )]より  「どんな環境からもWebの情報を利用できるように」はフォームに限らず、ウェブページを作成するときの【手段じゃなく】目的なので!!

re97
質問者

お礼

回答ありがとうございました。 >あくまで、javascriptは補助的手段です 参考になりましたー

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ウェブフォームにjavascriptはどの程度導入してよいのでしょうか?

    最近はjqueryなどでユーザーインターフェースを動的に、または美麗に作るのが主流になっているようですね。 私は2年ほどweb開発から離れていたので、どの程度まで導入してよいのか、迷っています。 最近のブラウザはほとんどjavascriptが動くと思うので、携帯向けサイト以外は、ガッツリ導入してもいいのでしょうか? 以前作成したサイトでフォームのバリデーションをjavascriptで行っていたのですが、ページをローカルに保存して改変した後に送信するという不正行為が行われたため、バリデーションを入れ直しました。 やはり、ユーザーの入力補助のバリデーションとインジェクション対応のバリデーションは別のものと考えて、二重に入れるのが主流なのでしょうか?

  • PHPフォームでのセキュリティ

    PHP初心者です。 メールフォームを作成して出来たものをサーバにアップし、 テストメールを送ろうとしたところ、 「yahooツールバー個人情報送信時の確認」 「送信する情報は暗号化によって保護されていません。送信しますか?」 と警告がでます。 警告が出ないようにするには、サーバー側で何かすれば良いのでしょうか?それともphpファイルの何か記述するのでしょうか? ちなみに、そのサーバーでCGIのメールフォームでは、そのような警告は出ません。 もう一つお聞きしたいのですが、サーバー側の文字コードの確認はどのようにしたら分るのでしょうか? メールフォームで入力した受信メールがサーバーによって文字化けするので。 駄文で申し訳ございませんが、困っておりますので宜しくお願い致します。

    • 締切済み
    • PHP
  • 入力フォームの入力チェックについて

    皆様こんにちは、宜しくお願い致します。 現在、ASP.NET2.0で業務用Webアプリを開発しています。 入力フォームサブミット時の入力チェックについてですが、 Validatorコントロール含むサーバサイドのみでは不十分 なのでしょうか? 職場では、PerlやASP案件はJavascriptを使用してクライアント サイドとサーバサイドで同様の入力チェックを実装しておりますが、 特に仕様や規約で決まっている訳ではない為、実装理由を上司に 尋ねると「まぁ念の為にね」という回答でした。 その為、今回も念の為にクライアントサイドの入力チェックも 実装しようという事ですが、私としましては工数が増えるだけで 同様のチェックを両サイドで行うメリットが分かりません。 職場は小さい会社で、初めてのASP.NET案件の為、他に経験者が おらず困っています。 ケースバイケース、という事もあるかと思いますが、ASP.NET もしくはWebアプリ開発の一つの手法として、経験者様からの アドバイスを頂戴致したく、宜しくお願い致します。

  • Java/サーブレットでの一般的な2重リクエスト防止方法について

    Java/サーブレットでの一般的な2重リクエスト防止方法について いつもお世話になります。 JSP/サーブレットでWebアプリを作成しているのですが、2重リクエストを防止する方法について、 クライアント側とサーバ側それぞれで、一般的にはどのような実装を行うのかご教授願えませんでしょうか。 「クライアント側とサーバ側それぞれで」としているのは、JavaScript禁止の場合を考慮して、 サーバ側のみで対処する場合どうするのかを知りたいためです。 特別なフレームワークは利用しておらず、tomcatを使用したJSP/サーブレットにて開発を行っております。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • FlashからJavaScriptを呼び出す際のエラーについて

    皆様こんにちは。 WEB作成初心者で常識的な質問でしたら大変申し訳ございませんが、調べてみてもどうしても解決できなかった為ご質問させて頂きました。どうかご教授お願いいたします。 タイトルのとおり、Flash側からjavascriptをコールしたいのですが、 swf側 on(press){ getURL("javascript: a()"); } html側 function a(){ alert('alert!'); } のような例の場合、htmlファイルとswfファイルが同じディレクトリ内にある場合は警告ウィンドウがきちんと表示されるのですが、swfを別サーバーに置いてそれを呼び出しているhtmlの場合は警告ウィンドウが表示されません。 私がgetURLの仕様を知らないだけなのかもしれませんが、別サーバーにあるswfファイルをロードしているようなページの場合、どのようにすれば呼び出し元htmlを表示しているウィンドウに対してjavascriptをコールする事が出来ますでしょうか? お手数をおかけしますがご教授頂ければ幸いです。

    • ベストアンサー
    • Flash
  • フォーム入力チェックはCGI(サーバ)で行う必要がありますか?

    漠然と思ったのですが、HTMLの入力フォーム値のチェックをCGIでは行わずに、Javascriptのみで済ませる方法はないでしょうか? Javascirptだけでチェックできればサーバ側の言語が、Perl、PHP、JSPのどれであっても同じ入力チェックを使えるので楽だなぁと思いました。 ただ、JavascriptをOFFにして直接URLに値を埋め込んだ場合、入力チェックを素通りしてしまいます。 Javascriptの有無をサーバ側で判定は不可能?な為、やはりサーバ側で入力チェックを行うしかないでしょうか? よろしくお願いします。

    • 締切済み
    • CGI
  • メールフォームからスパム

    私が使うドメインから、スパムが大量に発信されている、至急調査した方が良い、という警告をフォームメールから受けました。 レンタルサーバーに問い合わせたところ、警告されているようなメールアドレスやスパム送信の履歴はないとのことでした。 フォームメールのCGIを踏み台にして、そのようなスパムをばらまいているのではないかという見解をレンタルサーバー側はしています。 しかし、フォームメールはスパム防止のための受信専門で設置した物です。そのような事が出来るとはとうてい思えないのですが。。。 警告には氏名、連絡先等の記載は書いていないので、連絡の鶏用がありません。こういう場合はいったいどうしたら良いのでしょうか。 本当にスパムを所有ドメインを使って発信しているのであれば、申し訳ないので改めたいと思って居ます。

  • 画像が送れるCGIフォームって難しいですか。

    ユーザから商品に関する「アイデア」と参考になる「画像」を一緒に送れるフォームをCGIで組もうと思っています。 1.これって難しいのでしょうか。 2.やるために、サーバー側で行う作業にはどんなものがありますか 3.もし、できればサーバーにためるのではなく、指定メールアドレスに転送するようにしたいのですが、可能でしょうか。 以上、詳しい方、教えていただければ大変うれしいです。 どうぞよろしくお願いします。

    • ベストアンサー
    • CGI
  • javascript と php の、フォームを使わない送受信について

    初めて質問します。わかりにくいかも知れませんが、どうぞよろしくお願いします。 当方、HTTPXMLオブジェクト(?)を使ってHTTP通信を試みていますが、phpでのPOST受信が出来ず困っております。 以下、要約したソースコードを掲載します。 javascript側----------------- post_data = 'user_id='+ user_id +'&password=' + password; //user_id,password共にテキストフォームに入力された変数です (中略) httpObj.open('POST','hoge.php',true); httpObj.send(post_data); //これで送信し (中略) a = httpObj.responceText //で受け取っています。 ---------------------------------- php側----------------------------- $user_id = $_POST['user_id']; $password = $_POST['password']; ~DB接続処理~ print $res; //$resはjavascriptに送る文字列です ---------------------------------- と言うような感じなのですが、 javascript側の最後の a にはちゃんと $res の内容が格納され、表示もされることを確認しているのですが、 php側の$_POST['user_id']に何も入らずnullのままで、どうしたらいいのか途方に暮れています…。 蛇足かも知れませんが、念のためにHTML側のテキストフォーム部のソースだけを書いておきます。 <input type="text" id="user_id">ユーザ名 <input type="password" id="pass">パスワード <input type="button" id="login" value="log in"> <form>タグは使わず、ボタンがクリックされたときに、テキストフォームの内容を読み取ってphpに値を投げると言うイベントハンドラ的な動作をしています。 フォームの内容はjavascriptで取れていますが、如何せんphpへ投げたときにphpが受け取ってくれない…… 長文申し訳ございません。回答のほう、よろしければお願いします。

  • PHPでフォームに自動入力

    PHP初心者です。 (1)フォームに手入力しsubmit (2)手入力の内容をファイルに保管 (3)よそのサーバのフォームを開きユーザ名/パスワードを入力しsubmit (4)パスワード入力後に展開されるフォーム(https)に(1)の手入力の内容を入力しsubmit (5)"(4)"でsubmitした結果で次に表示するフォームを決定したい  submitした結果はフォームに正常/エラーが表示されます 自サーバのWebフォームに入力された内容を他のサーバに反映したい。 サーバへの反映結果で次処理を変えたい。 他のサーバに反映させる手段はWebの入力フォームのみとなっています。 (3)(4)(5)をサーバで動作するPHPで自動的(トリガーは(1))に行いたいです。 (3)(4)(5)の実装方法をどなたかご伝授いただけないでしょうか。 サンプルのソースがあればありがたいです。 linuxサーバ(Fedora) PHP 5 質問内容が大きすぎ申し訳ないですが伝授いただけないでしょうか。

    • 締切済み
    • PHP