タグ

sqlに関するamerica66のブックマーク (9)

  • サニタイズ/入力値検証/エスケープの考え方 - Qiita

    サニタイズって言うと怖い人たちがやってくるから言わないようにしましょう。 サニタイズは入力値検証もエスケープもなにもかもを含んだ広い意味になってしまったので、うっかり言ってることがい違うと大変です。 入力値検証は、PHPの外からPHPに入ってくる値を検証することです。 外というと主に$_REQUEST/$_GET/$_POST等のリクエストパラメータがイメージされますが、実際はそれ以外にも環境変数、コマンドライン引数、ファイルやデータベースからの読み込みなど、PHP以外からやってくる全てのものを指します。 入力値検証はセキュリティ対策ではない もう入力値検証はセキュリティ対策としてあてにしないようにしようという記事がありますが、「もう」以前に、そもそも入力値検証は根的にセキュリティ対策ではありません。 入力値検証は、『入力値が要件として正しい値か否かをチェックする』機能であって、そこに

    サニタイズ/入力値検証/エスケープの考え方 - Qiita
  • SQLインジェクション ④対策:サニタイジング(エスケープ)処理 : 情報処理安全確保支援士 - SE娘の剣 -

    (H18年SV午後Ⅰ問1表2より引用) これを丸暗記しようとすると難しいが、意味を理解すると覚えやすい。例えば「&」であれば、来の名称であるampersand、「<」であれば、less than(~より小さい)のltである。 セキュアプログラミングに関しては、IPAのサイトに充実した解説がされている。http://www.ipa.go.jp/security/awareness/vendor/programming/index.html 3.サニタイジング(エスケープ)処理の方法2 別の例を見ましょう。SQLインジェクション対策としてのエスケープ処理の具体的な処理としては、 ' を '' に変換します。サニタイジングをしない場合、UserNameに a' or '1'='1' と入力すると、データベース側では、 SELECT * FROM USER WHERE UserName = 'a

    SQLインジェクション ④対策:サニタイジング(エスケープ)処理 : 情報処理安全確保支援士 - SE娘の剣 -
  • 第20章 SQL インジェクション - Qiita

    <?php $sql = "SELECT * FROM Bugs WHERE bug_id = $bug_id"; $stmt = $pdo->query($sql); この時に$bug_idが整数などの意図通りの値なら良いが、 意図していないコードになりえる場合、 場合によってはインジェクションの攻撃対象となる。 アンチパターン : 未検証の入力をコードとして実行する 動的に挿入された文字列がクエリの構文を改変してしまう可能性がある。 ex) 先ほどの$bug_idの中身が1234; DELETE FROM Bugs;だった場合 クエリは以下のようになる

    第20章 SQL インジェクション - Qiita
  • 完全なSQLインジェクション対策

    (Last Updated On: 2018年12月14日)不完全なSQLインジェクション対策だけで、SQLインジェクション対策は万全、と誤解しているケースが少なくないです。 プリペアードクエリ/プレイスホルダを使ったSQLインジェクション対策でOK は誤りです。「とにかくプレイスホルダを使おう」では脆弱性は無くなりません。 簡単な証明:プリペアードクエリ”だけ”では、識別子(カラム/テーブル等)を使うソートクエリ、特定カラム抽出クエリを”原理的”に無害化できない。識別子のエスケープ/バリデーションが必須。(問題はコレだけはありません) 似たような間違いに「出力対策をするのがセキュリティ対策」だとする考え方があります。こういう考え方になる原因はセキュリティ設計や原則を理解していないことにあると思われます。 出力対策”のみ”のセキュリティはアンチプラクティス アンチプラクティスであっても正し

    完全なSQLインジェクション対策
  • SELECT文を統合する「UNION」

    SELECT文の統合「UNION」 今回は、問い合わせの統合(UNION)と、NULLに関連するトピックを解説し、SELECT文の最後の回とします。 UNION句を使用すると、これまでに使用してきたSQL文の結果を統合して、1つの結果とすることができます。これは、四半期ごとの売り上げデータを別のテーブルに持っている場合に、集計した結果を1つの表として参照したい場合など、複数の問い合わせ結果のマージを実施したい場合に役立ちます。 今回は、製品ごとに付けられた単価のパターンをすべて洗い出す、というSQL文を作成してみましょう。製品の単価は、製品マスターテーブル(Products)に基となる単価が保存されています。また、取引ごとに製品の単価を決定しているので、注文の明細テーブル(Order Details)にも、その取引における製品の単価が登録されています。これらの2つのテーブルからの別々の問

    SELECT文を統合する「UNION」
  • SQL講座 LEFT JOIN とRIGHT JOIN(表の外部結合)

    「1日1問」仕事や勉強に役立つIT知識を充電! リクルートが運営する「ITキャパチャージ」は、最初に会員登録が必要ですが、無料で仕事から情報処理技術者試験まで幅広く活用できるWebサイトです。IT担当者のスキルアップに役立つ情報処理に関する問題を、毎日1問ずつ、メールやサイト上で提供するサービスです。解答ページはIT初心者でも分かる丁寧な解説つきで、サイト上では過去の問題にも挑戦できます。 また、IT用語が調べられるIT単語帳は、説明も詳しく簡単に調べられ、たいへん便利です。ぜひ、会員登録して活用したいサイトです。 LEFT JOINとRIGHT JOIN 表結合を指定するときにWHERE句とINNER JOINのほかにLEFT JOINとRIGHT JOINで表を結合することができる。これは、表の結合したときに指定された左右いずれかの表を優先して表示を行う指定である。 例題1は売上表と顧

  • SQL講座

    データベースの種類と概要 リレーショナル型・データベースをはじめデータベースの種類とその概要の解説 SQLの概要 SQLの構成などSQLの概要 リレーショナル・データベースの関係演算 リレーショナル型・データベースの関係演算である選択、射影と結合の解説 「データベース/スグ解る!最新「データベース」機能」 キーマンズネットのデータベースの基礎の解説 Accessで試してみよう C言語やVisual Basicなどのプログラム言語の習得と同じで、SQLも実際にSQL文を入力して実行することでより早く、確実にマスターすることができる。ここではAccessでSQLを実行する方法を解説している。 MySQLで試してみよう 無料で使えるMySQLでデータベースとSQLを操作する方法を解説 MySQLのダウンロード MySQLのダウンロード方法 MySQLのインストール MySQLのインストール方法の

  • 統合言語クエリ - Wikipedia

    「LINQ」はこの項目へ転送されています。アイドルグループについては「LinQ」を、その他の「リンク」については「リンク (曖昧さ回避)」をご覧ください。 この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "統合言語クエリ" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2024年2月) 統合言語クエリ (Language INtegrated Query; LINQ, リンクと発音する) とは、.NET Framework 3.5において、様々な種類のデータ集合に対して標準化された方法でデータを問い合わせること(クエリ)を可能にするために、言語に統合された機能のことである。開発ツールはV

  • 初級〜中級者のためのSQL特訓 - 忘れないようにメモっとく

    ほぼほぼ初心者でSQLの練習がしたいっていう人、知識の再確認をしたい人にオススメのサイト。 SQLZOO ブラウザ上で動作するので、めんどくさい環境設定もなし。 データベースも、MySQLOracleSQL Server、Postgre、Ingres、DB2から選べる。 簡単なSELECT文から始まって、SUMやCOUNTみたいな基的な関数の問題や、JOINを使ったちょっと難しめの構文もある。 実行環境付きのリファレンスもあるのがよい!(超便利!)

    初級〜中級者のためのSQL特訓 - 忘れないようにメモっとく
  • 1