2016-01-01から1ヶ月間の記事一覧
XSS対策としてjavascriptでの文字列エスケープについて調べた。 PHPや他の言語のようにサニタイズメソッドが用意されていないようなので 独自に実装するのが良さそう。 考慮する必要があるのは、 < → < > → > " → " ' → ' & → & リプレー…
Railsでテーブル作成後、seedsファイルを使用したデータの登録手順を記載する。 1.seedsファイルにseed対象のファイルを追加 seedsファイルに直接テーブルの作成ロジックを記載しても問題ないが、 テーブルの数が多くなった時に管理が煩雑になるので、テーブ…
フォームでエンターキー押下時の制御 フォームのinputにフォーカスが当たっている状態でエンターキーを押下すると、 フォームの内容が送信される。 エンターキー押下時で送信させたくない場合は以下のようにjavascriptで制御してやれば良い。 $(document).re…
相関サブクエリとは SQLのサブクエリ内で、サブクエリ外部のテーブルを参照するサブクエリのこと。 以下の例では、相関サブクエリで、 companyテーブルのareaと同じ値を持つdeptテーブルのレコードを抽出している。 SELECT dept.person FROM dept WHERE dept…
以下に、gemを使用したrailsへのbootstrapの導入方法を記載する。 1.Gemの導入 以下のGemをGemfileに記載する。 gem 'twitter-bootstrap-rails' # bootstrapはlessで記述されているのでless-railsが必要 gem 'less-rails' # 同様に、less-railsの導入にrubyr…
表題の通り、救急車のサイレンの音が、通り過ぎる前と後で音程が変わるのはなぜか。 これにはちゃんとした理由がある。 理由 音の高低を決めるのは、音を伝える空気の振動の幅。 振動の幅が狭ければ(振動する回数が多ければ)高い音に、 幅が広ければ(振動す…
inputタグで、disabledがtrueになっている項目は、サーバーにPOSTされない。 なお、readonlyになっている項目はカーソルで選択状態にすることができ、POSTもされる。
HTTPヘッダのX-requested-withの値をチェック? HTTPヘッダのX-requested-withの値が、Ajax通信を示す「xmlhttprequest」であることを確認する。 SameOriginPolicyより、Ajax通信では、不正な外部ドメインからのアクセスはできない。 SameOriginPolicyとは …
CSRFとは クエスト強要(CSRF:Cross-site Request Forgery)。 本来拒否すべき、外部のWebページからのHTTPリクエスト(POSTやGET)によって、 Webサイトの何らかの機能が実行されるというもの。 ユーザが罠を踏んで、ECサイトで勝手に買い物をされるといっ…
knockout.jsを使えば、DOM操作を簡略に記述することができ、 コードの行数が減りそう。jQueryでガシガシDOM操作するよりスマートに記述できる。 knockoutでは、jsの変数と、htmlのセレクターをko.observable()という関数を使って関連づけることで、 自動的に…
Basic認証とは ユーザ名とパスワードの組みをコロン ":" でつなぎ、 Base64でエンコードして送信する認証方法。 curlでのBasic認証 以下の方法でアクセスする。 curl --user [ID]:[PASS] [URL]
curlでリクエストメソッドを指定する場合、-X、--requestオプションを指定する。 ※オプションを指定しない場合、GETメソッドで送信される模様。 curl -X DELETE http://testdomain/id/10
curlでPOST送信を行う方法。 オプションに-Dを付与する。 -Fでも可能だが、リクエストの受け取り側がmultipartをサポートしている必要がある。 curl -D param1=val1 -D param2=val2 http://testdomain/test.php 上記のコードはHTMLの以下の内容と同じになる…
javascriptで金額を扱う際に、千単位でカンマを付与させる。 ちなみにカンマ区切りは英語でthousand separator。 方法1. 正規表現 var amount = 100000; var formatedAmount = String(amount).replace( /(\d)(?=(\d\d\d)+(?!\d))/g, '$1,'); 方法2. toLocale…
propとattrは、jQueryでフォームのチェックボックスやラジオボタン、 セレクトリストの選択しているの値を取得する時に使用する。 $(":checkbox").click(function() { alert($(this).prop('checked')); alert($(this).attr('checked')); }); propはtrueまた…
テキスト・テキストエリア val()を使用して取得・設定をする。 <input type="text" id="area" value="テキスト"> // 値の取得 $('#area').val(); // 値の設定 $('#area').val('テスト'); ラジオボタン <label><input type="radio" name="sex" value="0" checked>男</label> <label><input type="radio" name="sex" value="1">女</label> 選択したラジオボタンの値取得 var val = $('[name=se…
レスポンシブなカルーセルを実装する時に、bxsliderを使用すると楽に実装できる。 jQuery Content Slider | Responsive jQuery Slider | bxSlider 使用するには上記リンクより必要なjs、cssをダウンロードし、 ソース内で読み込む。 以下にサンプルコードと…
jQueryを使用してセレクターのソートを行う際は、arrayクラスのsort()関数を使用する。 sort関数は、引数なしも実行可能だが、 ソート条件を指定できる。 sort()の戻り値(aとbをソートした場合) 1:bがaの手前に移動する 0:順序の変化なし -1:aがbの手前に移…