WebEngine

だらだらと綴る技術系メモ

SQL

内部結合と外部結合[SQL]

前提 環境:MySQLを使います(mysql Ver 14.14 Distrib 5.7.18) 結合とは 結合とは、複数のテーブルを特定のキーで結びつけて処理することです。 DBを使ったシステムやアプリケーションの多くは、1つのテーブルだけで実装されていることは少なく、 何枚かの…

PDOのfetch系メソッド

前提 PHP 5.6 mysql Ver 14.14 Distrib 5.7.18 Google Chromeでしかテストしていません PDOのfetch系メソッドをまとめただけです テストデータを用意 ※ fetch系メソッドだけ調べたい方は下の方まで飛ばしてください ターミナルでMySQLを起動。それから以下の…

Node.jsでSQLite3を使ってみる

環境 Ubuntu16.04 Node.js v7.7.1 npm 4.1.2 SQLite3をnpmでインストール node.jsはサーバサイドでjavascriptを扱えるようにしたもの。当然、データベースも扱うことが できます。 今回はSQLiteというデータベースを使ってみます。ほかの選択肢としてはmongo…

パスワードをデータベースに保存するときは、一緒に塩を入れよう

セキュアに保存する -> 漏れた場合を想定する データベース(以下DB)にパスワードを保存するとき、そのまま (平文で)保存してはいけません。データが漏れた場合に、パスワードが 見た瞬間わかってしまうからです。 パスワードを保存する場合、暗号化してからD…

SQLインジェクション対策の一歩としてプレースホルダを利用する

そもそもSQLインジェクションとは? 悪意を持ったユーザが入力フォームなどにSQLを打ち込んで、不正に データベース(以下DB)にアクセスすること。XSS(クロスサイトスクリプティング)に次いで 有名な攻撃手法とも言われます。 この攻撃を受けると・・・ D…