タグ

ブックマーク / blog.ohgaki.net (5)

  • SQLiteデータ型の仕様とセキュリティ問題

    (Last Updated On: 2018年10月8日)SQLiteはファイルベースのオープンソースRDBMSです。オープンソースとしては珍しいパブリックドメインライセンスを採用しています。SQLiteはファイルベースなのでデータベースサーバーが必要なく手軽に利用できます。SQLiteは組み込みデバイスで広く利用され、Android/iOSなどでは標準的なデータベースとして利用されています。モバイルデバイス以外での利用も広がっており例えば、Drupal8はSQLite3に対応しています。 普通のRDBMSのようにSQLクエリが利用できるのでとても便利ですが、SQLiteの仕様は他のRDBMSと異なるので注意が必要です。 追記:論理的・体系的セキュリティを構築していれば、ここに書かれているようなセキュリティ上問題となる事を自身で分析/対応できるようになります。 SQLiteの仕様 最も特徴

    SQLiteデータ型の仕様とセキュリティ問題
  • password_hash()の重要な制限

    (Last Updated On: 2019年2月25日)password_hash関数はcrypt関数のラッパーです。パスワードを簡単かつ安全にハッシュ化するための関数です。現在のPHPマニュアルにはpassword_hash関数の重要な制限が未記載であったため追加しました。 password_hash関数はcrypt関数のラッパー password_hash関数は string password_hash ( string $password , integer $algo [, array $options ] ) の書式を持ち、$algoにはDEFAULTまたはPASSWORD_BCRYPTが指定できます。現時点ではPASSWORD_BCRYPTしか指定できないのでどちらを指定しても同じです。DEFAULTを利用することにより、将来より強固なハッシュ関数が追加された場合に自動的な更

    password_hash()の重要な制限
  • yohgaki's blog - 画像ファイルにJavaScriptを隠す

    (Last Updated On: 2014年12月5日)前回のエントリでイメージファイルにスクリプトを埋め込んで攻撃する方法について記載しましたが、最近イメージファイルにスクリプトを埋め込む事例が話題になったためか ha.ckersにJavaScriptをイメージファイルに隠す方法が紹介されています。 http://ha.ckers.org/blog/20070623/hiding-js-in-valid-images/ <script src="http://cracked.example.com/cracked.gif"> などとXSS攻撃を拡張する手段に利用可能です。サンプルとしてFlickerにJavaScriptを埋め込んだイメージファイルがアップされています。 このイメージファイルは上手く細工しているので画像としても表示され、JavaScriptも実行できます。 Flicke

    yohgaki's blog - 画像ファイルにJavaScriptを隠す
  • SET NAMESは禁止

    (Last Updated On: 2018年8月13日)MySQLには文字エンコーディングを変更する「SET NAMES」SQL文が用意されています。(PostgreSQLも同様のSQL文、SET CLIENT_ENCODINGがあります)この機能はSQLコンソールからは使ってよい機能ですが、アプリケーションからは使ってはならない機能です。SQLインジェクションに脆弱になる場合があります。 Ruby on Railsを読んでいて、ActiveRecordを説明している部分にMySQLの文字エンコーディングを変更する場合の例としてSET NAMESが利用されていました。アプリケーションからはSET NAMESは使ってはならない事を周知させるのは結構時間が必要かなと思いました。 PHPも5.2の途中からMySQLモジュールにlibmysqlの文字エンコーディング設定APIのラッパー関数が

    SET NAMESは禁止
  • PostgreSQL 8.3の全文検索機能(TSearch2)を日本語で利用する

    (Last Updated On: 2018年8月13日)PostgreSQL 8.3.0から、ユーザから提供されている追加機能(contrib)として利用できた全文検索機能(TSearch2)が体に取り込まれました。 体に取り込まれたため、PostgreSQL 8.3.0以降ではソースから構築する場合に ./configure make make install と実行するだけで全文検索機能が利用できるようになりました。 TSearch2は単語単位で全文検索できます。しかし、日語のように単語に区切りがない場合、単語に分解(形態素解析)してからインデックス化する必要があります。 # N-gramは使えません。 残念ながら日語をそのまま扱える機能はPostgreSQL 8.3では実装されていません.しかし、TSearch2(textsearch)を日語で利用するための追加機能がpg

    PostgreSQL 8.3の全文検索機能(TSearch2)を日本語で利用する
  • 1