タグ

validationに関するm_shige1979のブックマーク (6)

  • Rails 4でモデルのバリデーションまとめ - Rails Webook

    Railsではバリデーション(Validation)という仕組みがあります。 フォームなどでユーザーからの入力値をDBに保存する前にその値が正しいものかモデル層で(システムとして許可している値か)を検証する仕組みです。 バリデーションの基的な流れ、バリデーションの定義とバリデーションのテスト方法、バリデーションのスキップなどのバリデーションの基についてまとめました。 動作確認 Rails 4.1 ActiveRecord 4.1 shoulda-matchers 2.6.3 目次 1. Railsでのバリデーションの流れ 2. バリデーションを定義する 2.1. 存在チェック(presence) 2.2. 一意性(ユニーク制約)のチェック(uniqueness) 2.3. 長さのチェック(length) 2.4. フォーマットのチェック(format) 2.5. 数値の値チェック(nu

    Rails 4でモデルのバリデーションまとめ - Rails Webook
  • AngularJSのバリデーションにハマった件をまとめてみた。その1 | DevelopersIO

    はじめに 好物はインフラとフロントエンドのかじわらゆたかです。 今回の案件ではAngularJSのFormのバリデーションを用いました。 チェックの条件をView側に埋め込むことができ、 また、ngMessage ディレクティブを用いることで、エラーメッセージの表示まで行うことができます。 非常に便利な機能ではあるのですが、2点ほどハマった点があったので紹介します。 Modelにバインディングされていない 冷静に考えればそのとおりなのですが、バリデーションでエラーとなった値はModelにはバインディングされません。 これを意識しておかないとパスワードとパスワード(再入力)の同値評価をバリデーションで行おうとした際に、 ちょっと困ったことになります。 現象説明 Validation Form Check Sample 上記はパスワードとパスワード確認用を入力するフォームです。 両方のフォーム

    AngularJSのバリデーションにハマった件をまとめてみた。その1 | DevelopersIO
  • EximのGHOST脆弱性の影響とバリデーションの関係

    追記(2015/2/6) 大垣さんから訂正依頼のコメントを頂いておりますので合わせてお読みください。徳丸としては特に訂正の必要は感じませんでしたので、文はそのままにしています。そう思う理由はコメントとして追記いたしました。 (追記終わり) 大垣さんのブログエントリ「GHOSTを使って攻撃できるケース」を読んだところ、以下のようなことが書いてありました。 1. ユーザー入力のIPアドレス(ネットワーク層のIPアドレスではない)に攻撃用データを送る。 2. バリデーション無しで攻撃用の不正なIPアドレスをgethostbyname()に渡される。 3. ヒープオーバーフローでヒープ領域のメモリ管理用の空きサイズを改竄する。 【中略】 どんなソフトウェアが危ないのか? ユーザー入力のIPアドレスをバリデーションしないでgethostbyname()を使用している。 インタラクティブな動作を行っ

  • 【CakePHP】組み込みバリデーションを勝手利用する | ECWorks Blog

    久しぶりにCakePHP体のTipsなんかを。 現在ちょっとトリッキー(?)なバリデーションの利用を想定していまして、Model内の$validateプロパティでの指定以外で同機能が使えないものかと調べていました。 組み込みバリデーションは、全て「cake/libs/validation.php内にあるようで、こいつをインポートして直接メソッドを呼び出すだけで何処でも使えるようです。 App::import('Core', 'Validation'); class FooController extends AppController { var $name = 'Foo'; //省略 function hoge(){ //バリデーションの利用 if(Validation::alphaNumeric($check)){ echo "OK牧場"; } } なお、場所によってはimport(

  • データのバリデーション(Data Validation) - 1.3

    データのバリデーション(Data Validation)¶ あらゆるアプリケーションにおいて、データのバリデーションは重要です。これは、モデルのデータがアプリケーションのビジネスルールに必ず従うようにすることに役立ちます。例えば、パスワードは8文字以上であるとか、ユーザ名は必ずユニークにするといったことが挙げられます。バリデーションを定義することは、フォームの取り扱いをとても簡単にします。 バリデーションの仕組みは多くの異なる場面で使います。 この章ではモデルでの利用、基的には save() メソッドを呼び出した時の振る舞いについてを説明します。バリデーションエラーをどのように取り扱うかについての詳細な情報は、FormHelperについての項目を参照してください。 データのバリデーションを行うには、まずモデルにバリデーションのルールを作成します。これは、モデルの定義の中の Model::

  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

    正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/

    m_shige1979
    m_shige1979 2014/03/04
    正規表現の場合は分かっていないで使うと痛い目をみることになるようですね。
  • 1