すべての開発者が理解するセキュリティの基礎


先週、私はこの糸を作りました.


私はあなたの偉大な回答のいくつかを共有したい.ここに知恵のトンがあるので、読んでください.

Dian Fay
  • トラスト誰も.特に自分.
  • 唯一の完全に安全なシステムは、切り離されて、電源を入れられて、コンクリートに入れられて、目隠しされるヘリコプター飛行から海に落ちたものです.
  • あなたが使うことができるどんな機能も、他の誰か他の機能を使用することができます.あなたのシステムを通してアクセスできるデータは、他の誰かがあなたのシステムにアクセスできるデータです.バックドアは固有のセキュリティリスクです.

  • Assume user input is malicious until proven otherwise .
  • あなた自身の暗号をロールバックするのに十分であるならば、あなたはすでにCryptoに特に取り組んでいる仕事を持っています.
  • あなたが入力したものかどうかをテストする必要がある場合(パスワードのように)ハッシュ、暗号化しないでください.
  • はプリペアドステートメントをバインドし、パラメータをクエリに挿入しません.
  • あなたがサイトを支持する公的に見えるAPIを持っているならば、remember that your site isn't the only thing that can hit it.
  • エッジケースを考え、テストします.

  • Adnan Rahić
  • 入力データを検証!
  • 真剣に、入力データを検証します.
  • 私は入力データの検証に言及しましたか?

  • Donald Merand

    保存するデータが少ないほど、自分自身を公開するセキュリティ障害が少なくなり、参加者がより安全になります.それは有用になるという理論上のデータをホードしないでください-あなたが必要なものを保存するだけで、あなたがそれを必要と思う状況になるたびに自分自身に質問してください.
    あなたがデータを格納する必要がある場合は、特に敏感なデータは、プレーンテキストでそれを格納しないでください!bcryptのようなハッシュアルゴリズムを見てください.
    常に、あなたの参加者に彼らのデータを削除するオプションを与えてください、そして、彼らがあなたに尋ねるとき、実際にそれを削除してください.

    edA‑qa mort‑ora‑y
  • セキュリティは難しいです.様々な攻撃について読むことは価値がある.
  • あなたのシステムは破られます.緩和戦略は「壁」と同じくらい重要です.
  • システムは決して安全ではない、あなたは現在のリスクと利用可能なリソースとセキュリティ目標をバランスすることができます.
  • プライバシーはセキュリティから切り離せない.あなたが無責任で、あなたのユーザーに気を配らないとしても、攻撃者はそうします.
  • データがより貴重になるにつれて、セキュリティはますます難しくなります.ほとんどのシステムは本当に安全ではありません.なぜなら、誰も本当に彼らが格納するデータを望んでいないからです.会社が成功するにつれ、攻撃者が来る.
  • セキュリティは移動目標です.あなたはセキュリティを実装することはありません.
  • ユーザーのセキュリティは、企業のセキュリティと同じくらい重要です.
  • セキュリティについて開いている
  • は、それが正しいということを知っている唯一の方法です.不信を通してのセキュリティはありません.
  • 誰もがセキュリティに責任があります.すべての人とすべてのマシンは、潜在的な攻撃ベクトルです.
  • 実際的なアドバイス
  • は既存のライブラリ
  • を使用する
  • は、ベストプラクティスに従って
  • すべてを最新の
  • にしておきます
  • は開いていて、質問
  • に尋ねます
    24579172コード防御的な
  • は、危険
  • に気づいています

    Alexandre Plennevaux

    外部からデータを処理するときはいつでも、必ずこの順序で処理します.
  • sanitize
  • 検証
  • 実行
  • 表示フィードバック
  • 例:
    
    $errors = array();
    
    // 1. Sanitisation
    $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
    
    // 2. Validation
    if (false === filter_var($email, FILTER_VALIDATE_EMAIL)) {
       $errors['email'] =  "Invalid email address";
    }
    
    // 3. Exécution
    if (count($errors)> 0){
        echo 'There are errors : ';
        print_r($errors);
        exit;
    }
    // At this point, all is fine, let's open the gate...
    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
    //...
    
    // 4. Feedback information
    

    ファンダメンタル.


    これが役に立つことを願っています.私たちがセキュリティに関して従うことができる多くの特定の規則があります、しかし、原則から始めることは鍵です.そして、我々は誰もがすでにファンダメンタルズを知って、把握すると決して仮定することができません.出て、あなたのソフトウェアを確保!