タグ

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

  • 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は禁止
  • 書評:Web+DB Press Vol. 52

    (Last Updated On: 2009年9月19日)随分前に頂いていました。遅ればせながら簡単な書評を書きます。 特集は以下の通り。 特集1 Javaプログラミングの習慣 特集2 Vimの流儀 特集3 データベースシステムの基解剖 SSD投入で何が変わるのか? 「特集1 Javaプログラミングの習慣」ではプログラミング言語にはコーディングの習慣があり習慣を守る事により読み易く分かり易いコードになるとしています。確かにその通りで、現実の世界でも習慣的な言い回しを使う事によりスムーズにコミュニケーションできるようになります。 問題は習慣を知らない人がどうやって習慣を知るのか?です。よく「コードを読め」と言われますが、これはコーディングを知ると同時に習慣を知る為にも必要だからです。 Javaを習得したばかり、時々Javaプログラマの人にとっては有用な記事でしょう。 エディタは必要最小限の

    書評:Web+DB Press Vol. 52
  • PHP:既知のセキュリティ脆弱性 – Session Adoption

    (Last Updated On: 2018年8月13日)追記:より新しい情報については間違いだらけのHTTPセッション管理とその対策をどうぞ。 PHPには広く知られているにも関わらず放置されている既知のセキュリティ脆弱性が幾つかあります。その一つがセッションモジュールのセッションアダプション(Session Adoption)脆弱性です。この脆弱性は現在広く利用されているWebアプリケーションの安全性に、非常に大きな影響を与える脆弱性です。 セッションアダプション脆弱性とはセッション固定化攻撃を可能とする脆弱性の一種です。セッションアダプションに脆弱なセッション管理システムは、ユーザ(ブラウザ)が送信してきた未初期化のセッションIDを受け入れ、セッションを初期化してしまいます。PHPに限らず、RailsJavaのフレームワーク等、多くのWebフレームワークに発見されている脆弱性です。

    PHP:既知のセキュリティ脆弱性 – Session Adoption
  • htmlspecialchars/htmlentitiesの正しい使い方

    (Last Updated On: 2018年8月16日)追記:このエントリは古い情報です。今のHTMLエスケープの情報は以下の新しいエントリを参照してください。 PHPHTMLエスケープ PHP_SELFはそのまま出力できないに htmspecialchars($str, ENT_QUOTES); じゃなくて、 htmspecialchars($str); で終わらせてしまった場合の、 問題例が非常に欲しいです!! とコメントを頂きました。 htmlspecialcharsとhtmlenties関数はENT_QUOTESを指定しないとENT_COMPAT(セキュリティ上問題があるが互換性を維持)が指定された状態と同じ動作をします。 ENT_QUOTESは”と’の両方をHTMLエンティティに変換するオプションです。ENT_COMPATは”のみHTMLエンティティに変換します。 JavaS

    htmlspecialchars/htmlentitiesの正しい使い方
    noplans
    noplans 2008/04/10
    htmlspecialchars and htmlentities
  • LAMPセキュリティを向上させる方法

    (Last Updated On: 2008年3月24日)LAMPはLinux, Apache, MySQLPHPまたはPerl, Pythonを利用したWebシステムの総称として利用されている用語です。 特にLinux/Apache/MySQL/PHPはよく見かけるシステム構成です。ホスティングサービスを提供する会社でこの構成をサポートしていない会社を探すのが難しいくらいではないかと思います。広く使われていますが、「十分に安全な状態」と言える状況で運用されているケースはほとんどありません。 関連エントリ LAMPのPをPHPからPerl/Python/Rubyに替えるだけではセキュリティは向上しない証拠 誤解を招く記事 – LAMPセキュリティを強化する4つの方法 脆弱性情報を収集する 全てのソフトウェアにセキュリティ上の問題が含まれている、と考えて間違いありません。利用しているソフト

    LAMPセキュリティを向上させる方法
  • LAMPのPをPHPからPerl/Python/Rubyに替えるだけではセキュリティは向上しない証拠

    (Last Updated On: 2008年4月3日)誤解を招く記事 – LAMPセキュリティを強化する4つの方法で紹介した記事ように、最近「言語を替えるとセキュリティが向上する」といった間違った認識が広まりつつあるように思えます。 結論からいうと、セキュリティに関連する機能が同等な言語であれば「言語を替えるとセキュリティが向上するいう考え」は妄想です。言語を替えても、正しいセキュリティ知識を持ち合わせた開発者が開発しないと、危ないアプリケーションが簡単に作れます。 ちょうど良い証拠となるPloneのCVEエントリが公開されています。PloneはPythonで記述されたCMSです。私も利用したことがありますが、なかなかよくできているCMSです。出来立てのCMSではなく何年も前から実用されています。フレームワークとしてPythonのWebシステムよく利用されているZopeを利用しています。

    LAMPのPをPHPからPerl/Python/Rubyに替えるだけではセキュリティは向上しない証拠
    noplans
    noplans 2008/03/21
    コメント欄
  • JPUG北海道 RUBY札幌 合同セミナーの資料

    (Last Updated On: 2018年8月14日)2月16日に札幌で行われたJPUG北海道 RUBY札幌 合同セミナーの資料です。 クリックしてPostgreSQL-Performance.pdfにアクセス セミナーの際には風邪の為、声がでず、非常に聞き辛かったと思います。聞きにお越しいただいた方には申し訳ないです。 fsync=falseなのでかなり速い事は理解していただけたと思います。(かなりのスピートダウンですがfsync=trueでも速いです)セッションをデータベースで管理した場合などにfsync=falseで運用しても問題ないでしょう。しかし、絶対にデータベース上のデータの不整合は困る場合にはfsync=trueに設定しなければなりません。 とは言ってもfsync=falseの速さは捨てがたいと言う方はUPSを利用すると良いでしょう。UPSを付ければリスクはかなり低減でき

    JPUG北海道 RUBY札幌 合同セミナーの資料
    noplans
    noplans 2008/02/18
    大垣さんの発表資料
  • Ruby on Rials – Session Fixation脆弱性の攻撃方法

    (Last Updated On: 2008年2月3日)前回に引き続きWeb関係のセキュリティ脆弱性がどのように攻撃されるのか解説した記事がThinkITに掲載されています。 今回はRuby on Railsの脆弱性が対象です。Ruby on Railsにもいくつかのセキュリティ脆弱性が報告されていますが、URLベースのセッションがいかに脆弱であるか解説しています。 解説対象の脆弱性 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-5380 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6077 Railsのセッション管理機構にはSession Adoption脆弱性は無いのに何故攻撃できるのか?と思った方は読んでみてください。記事を読んで頂くと脆弱性を実際の攻撃に

    Ruby on Rials – Session Fixation脆弱性の攻撃方法
    noplans
    noplans 2008/01/25
    Rials -> Rails
  • 1