タグ

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

  • JavaScript文字列のエスケープ

    これらの中で注目すべきは ‘ と ” と \ です。シングルクォート、ダブルクオートは文字リテラルを作成する為に利用され、\ でエスケープできることです。つまり、文字リテラルの最後に \ が現れると文字列の終端が無くなります。単独で不正なJavaScriptの挿入が可能になる訳ではありませんが、プログラムの構造が破壊される事を意味します。 PHPにはJavaScript文字列用のエスケープ関数が用意されていません。htmlspecialchars()やhtmlentities()で代用している場合も多いと思います。しかし、これらの関数ではJavaScript文字列のエスケープを十分に行う事ができません。 JavaScriptプログラムの構造が破壊される例 <?php $msg1 = 'test string\\'; $msg2 = ');alert(document.cookie); //

    JavaScript文字列のエスケープ
    tenkoma
    tenkoma 2018/07/22
  • PHPでCSRF対策を自動的に行う方法

    (Last Updated On: 2018年8月13日)PHPでWebページにCSRF対策を追加するのは簡単です。全てのページにCSRF対策を追加する場合、ファイルを1つインクルードする以外、ほとんど何も行う必要がありません。 CSRF Protection for PHPの機能 自動的にHTMLフォームやリンクにCSRFトークンを追加 CSRFトークンの有効期限を設定可能 まだまだ多くのアプリケーションが固定かつ有効期限を設定しないのCSRFトークンを使っています。この状態では一旦CSRFトークンを盗まれると、攻撃者にいつまででも攻撃される可能性があります。 このスクリプトの場合、有効期限付きのCSRFトークンをWebページに自動追加して防御します。 後で記載するようにPHP 7.1でoutput_rewrite_var()のバグを完全に直しました。なのでPHP 7.1以降の利用がお勧

    PHPでCSRF対策を自動的に行う方法
    tenkoma
    tenkoma 2018/06/03
  • 書評: CakePHPによる実践Webアプリケーション入門

    (Last Updated On: 2011年1月9日)このは今年のPHPカンファレンスで景品として頂いたです。 CakePHPと言えば「CakeMatsuriTokyo2009」が10/30, 10/31に開催されます。興味がある方、CakePHPによるWeb開発にさらに磨きをかけたい方は参加されてはどうでしょうか? さて、「CakePHPによる実践Webアプリケーション開発」ですがタイトルの通りのです。PHPとWebアプリ開発の基礎知っている方なら、このを読むだけでCakePHPでどのようにWebアプリケーションを作れば良いのか、解るになっています。このを通してグループウェアの構築が体験できてしまいます。今時のWeb開発に欠かせないテストフレームワークの使い方も紹介しています。 このはオンラインマニュアル等で簡単に入手できる情報は省略されています。CackePHPは全く初

    書評: CakePHPによる実践Webアプリケーション入門
    tenkoma
    tenkoma 2009/10/23
    同感です。この本はWebの資料で得にくいストーリーがある > 「簡単に調べられる事は解説しない」はあって良いのではないか
  • Git+SSH+マルチユーザ

    (Last Updated On: 2018年8月14日)格的にSubversionからGitへの移行を行った際に作ったGit+SSHサーバの手順をWikiに書きました。この手順を実行すると SSHの公開鍵を持っているユーザにのみリポジトリへのアクセスを許可 複数あるリポジトリへのアクセス許可を個別に設定 グループを設定して「読み込み」「書き込み」の権限を管理 ができるようになります。 詳しくはWikiのgit sshサーバの構築をご覧下さい。 Subversionの頃はWebDAV+SSL+Basic認証だったので以前と比べればかなり認証の安全性は増したと言えます。

    Git+SSH+マルチユーザ
    tenkoma
    tenkoma 2009/10/21
  • セキュリティ対策を行うべき部分 – 自分が作っている部分

    (Last Updated On: 2018年8月8日)アプリケーション開発者がセキュリティ対策を行うべき部分とはどこか?当たり前ですがアプリケーションです。アプリケーションとは広い意味でのアプリケーションです。Webアプリの場合もあれば、ライブラリやモジュールであったり、フレームワークであったり、言語やサーバの場合もあります。 すべてのアプリケーション開発者が同じような意識を持ち、アプリケーションが安全に動作するようの作る責任はアプリケーションにあると責任感を持って開発すべき、と言いたいところですが実際には難しいです。 例えば、開発を始めたばかりの初心者であれば無理があります。どう作れば安全か、危険か、判断する基準がないからです。経験を積んだ開発者でも自分が作った事もない様なプラットフォーム上でどのように作れば安全か判断できません。 何故、セキュリティが分かり辛いのか?その一つ理由が「セ

    セキュリティ対策を行うべき部分 – 自分が作っている部分
  • Drupal勉強会とその時の資料

    (Last Updated On: 2018年8月13日)Linux Foundationは全面的にDrupalと呼ばれるCMSに移行したそうです。日Linux Foundationも当然、Drupalに移行しています。そこでLinux Foundationの小薗井さんから一度講師をして欲しい、と頼まれていました。PHPカンファレンスにいったので、その次の日の日曜日、9月6日の勉強会に参加してきました。 外国人の方が多い、と聞いていたのですが当に外国人の方の割合が多かった。20名弱(?)ほどのうち4名くらい(?)は外国人の方、日人の方(?)でも帰国したばかりで日語がたどたどしいと言われている方もいました。とてもインターナショナルな感じで学生のころを思い出しました。 ユーザ会のURL: http://groups.drupal.org/japan 勉強会の様子は次のような感じです。

    Drupal勉強会とその時の資料
  • PHP6移行で増える脆弱なWebアプリ

    (Last Updated On: 2009年9月19日)PHP6のリリースはまだまだ先の話なのですが、PHP6への移行で脆弱なWebアプリが大量に発生する可能性があります。 理由は2つ – mb_check_encodingで全ての入力文字エンコーディングが正しいかチェックしていない – PHP6のhtmlentities/htmlspecialcharにはマルチバイト文字チェックコードが削除される PHPのコードを書いている人も自覚していないと思いますが、この影響はかなりあると考えられます。 近日中にgihyo.jpのセキュリティブログに詳しい情報を記述します。 追記:PHP5.3のコードを見てみたら、バックポートすべきではないのにバックポートされてました。つまり、PHP6がリリースされたらと言う問題ではなく、今ある問題になっています。一応、改修を提案するつもりですがどうなるか判りませ

    PHP6移行で増える脆弱なWebアプリ
    tenkoma
    tenkoma 2009/07/18
    koeee
  • 画像ファイルに PHP コードを埋め込む攻撃は既知の問題

    (Last Updated On: 2015年9月10日)国内外のメディアで「画像ファイルに攻撃用のPHPコードが含まれていた」と比較的大きく取り上げられています。しかし、この攻撃手法は古くから知られていた方法です。条件は多少厳しくなりますがPerl, Ruby, Pythonでも同様の攻撃は考えられます。PHPの場合は言語仕様的に他の言語に比べ攻撃が容易です。 典型的な攻撃のシナリオは次の通りです。 追記:Tokenizerを使った例に修正しました。 アバダなどの画像ファイルをアップロードできるサイトを探す ローカルファイルインクルードバグを探す 画像ファイルにサイトが利用している言語のコードを埋め込む 攻撃コードを含んだファイルを画像ファイルとしてアップロードする ローカルファイルインクルードバグを利用して攻撃コードを実行する PHPの場合、リモートインクルードバグを攻撃するための攻撃

    画像ファイルに PHP コードを埋め込む攻撃は既知の問題
  • 1