タグ

2016年6月6日のブックマーク (14件)

  • CakePHP セキュリティ対策について考える(SQLインジェクション、XSS、CSRF) | hijiriworld Web

    Posted on: 2011/11/18 CakePHP セキュリティ対策について考える(SQLインジェクション、XSS、CSRF) 概要 SQLを使って不正にデータベースを操作する攻撃 攻撃例 ユーザー名とパスワードを入力してログインする処理があるとする。 username と password の組み合わせが、データベースのものと一致すれば認証するという仕組みだとする。 SELECT * FROM users WHERE username='$username' AND password='$password' ここで、($username: admin, $password: ' OR 'a'='a)と入力すると、SQLは以下のようになる。 SELECT * FROM users WHERE username='admin' AND password='' OR 'a'='a' こ

  • セキュリティ - 2.x

    セキュリティ¶ class SecurityComponent(ComponentCollection $collection, array $settings = array())¶ Security コンポーネントを使うと、アプリケーションにさらに堅牢なセキュリティを導入できます。 このコンポーネントは、以下の様々なタスクのためのメソッドを提供します。 アプリケーションが受け付ける HTTP メソッドの限定 CSRF 防御 フォーム改ざん防止 SSL の利用を要求 コントローラ間の通信制限 全てのコンポーネントと同様に、いくつかの設定できるパラメータがあり、 これら全てのプロパティは、直接設定したり、コントローラの beforeFilter の中で、 プロパティと同じ名前のセッターメソッドで設定できます。 Security コンポーネントを使用することで、自動的に CSRF とフォーム

  • 【CakePHP】フラッシュメッセージの動きを把握し、よくあるトラブルと戦う。 | バシャログ。

    最近、ささみの燻製にはまりつつある常時減量中のfukasawaです。こんにちは。 スモークチーズみたいな味で、べごたえもあって美味しいです。どこのスーパーにも置いているわけではないようなのですが、サラダチキンに飽きてしまった方は見かけたら是非試してみてください。 さて、CakePHPには1回限りの通知をユーザに表示するフラッシュメッセージという機能があります。例えば、ユーザがブログ記事を投稿した際に「投稿完了しました。」のようなメッセージを表示する際に便利な機能なのですが、使用していると「関係のない画面にメッセージが表示された」とか「メッセージを表示して欲しいタイミングで表示されない」といったトラブルに悩まされることがあります。 そのようなトラブルに遭遇した際、フラッシュメッセージの動きを把握していないと何処に原因があるのかを特定できず、解決するまでに時間がかかってしまったりといった状況

    【CakePHP】フラッシュメッセージの動きを把握し、よくあるトラブルと戦う。 | バシャログ。
  • なぜ、IDEじゃなくてVimを使うか。 - Qiita

    ここに書かれていることは私の「なぜ、IDEじゃなくてVimを使うか。」の理由なので、Vimmerな皆同じ理由とは限らないのでご注意を...。 また、だいぶ省略しているので、Vimを全くしらないひとには分からないところも多々あるかもしれません、ご了承を...。 Vim以外のテキストエディタ(Emacs、Sublime Text、Atomなど)では同じようなことが実現できるかもしれないので、必ずしもここであげたことが正しいわけではないですのでご勘弁を...。 1. MacLinuxWindowsのどれでも使える。 MacLinuxでは大抵デフォルトでvimコマンドが入っています。 でもこれはCUIVimなのでGUIVimを使いたい人は、 プログラム管理ツールとかでさっくとインストールできます(たぶん)。 Ubuntuだとsudo apt-get install vim-gnomeでイ

    なぜ、IDEじゃなくてVimを使うか。 - Qiita
  • Cakephp2.xで複数のログインを実装する方法 - Ich habe hunger

    ユーザーがログインするシステムを作ってると どうしても、adminもログインして管理画面を持つようになりますよね。 そこに対して、別のモデルでのログイン機構を作るのに手間取ってました。 が、良い記事を見つけて解決出来そうです。 1ヶ月前になんで見つけられなかったんだろうなぁ(´・ω・`) ともあれ、ユーザーと管理者を別モデルで実装しながら ふたつともログイン機能をつけたい、という長年の夢がさくっと叶いそうです。 もともとのアイデア AppController ├ UserAuthController │├ PagesController │└ UsersController └ AdminAuthController └ AdminController という形で、AppControllerをextendsして Auth用のControllerを作り、 そこでAuthComponentの設

    Cakephp2.xで複数のログインを実装する方法 - Ich habe hunger
  • 【CakePHP 2.x】複数モデルでAuthコンポーネントを使う - pospomeのプログラミング日記

    Authコンポーネントを使うと、認証機能が簡単に実装できるが、 モデルを運営者モデルと利用者モデルで分けたいことがある。 これを実現するには、AdminRouting を利用する。 運営者モデルをOwnerとして、全ActionをAdminRoutingで実装する。 利用者モデルをUserとして、普通のルーティングで実装する。 運営者のログイン画面は /admin/users/login になり、 利用者のログイン画面は /users/login になる。 最後まで読んで実装すればログインURLはどうとでもなるので、 今回は上記で実装する。 まずは、利用者のログイン機能を実装する。 AppControllerにAuthコンポーネントを定義する。 <?php class AppController extends Controller { public $helpers = array('H

    【CakePHP 2.x】複数モデルでAuthコンポーネントを使う - pospomeのプログラミング日記
  • Cakephp2のAuthコンポーネントで複数ログイン機能を制御

    CakePHP2による開発で、何種類かのログイン機能を一つのウェブサービスに実装したい場合のお話し。 たとえば管理者用機能と一般ユーザーでのログイン状態の切り分けや、一つのサイト内で別のサービスを立ち上げて2種類以上のユーザーを抱えるような場合、aclによる制御も一つの方法ですが、そこまで厳密にユーザー権限を管理する必要は無いケースも多々あるはず。 単純にユーザーテーブルとloginメソッド実装したコントローラーを複数用意して、「ログイン出来たー!」と思ったらログイン情報が錯綜してしまい、あっちの機能でログインしたら、こっちの機能のログイン状態がおかしくなった...。 という場合の対処方法。 簡単な話で、各コントローラごとにログインを管理するグループに合わせてAuthComponentのセッションキーを変えればOK。 たとえば管理者機能(Adminグループ)のログインと、一般ユーザー(Us

    Cakephp2のAuthコンポーネントで複数ログイン機能を制御
  • ホームページの作成:JAVAScriptでログインページ作成

    最初に JAVAScript を使用た認証(ログイン)ページを作成しようと思いました。 基的なプログラムの作成方法を調べるために、googleJAVAScript 認証で検索して見ました。 最初にヒットしたのは、All Aboutでした。 記載の内容を見ると、この手の認証方法に良く見かけるパスワードをファイル名にしているだけの認証とは程遠いやり方でした。 2番目にヒットしたサイトを見てみました。 こちらも全く同じやり方です。 特に私が気に入らないのは、サーバーに Not Found エラーを出させている点です。 一度でもサーバーを構築した人なら、不要なアクセスがどれだけサーバーにとって迷惑であるのかを身にしみて感じていると思います。 まるでスパムロボットのような真似をさせるこのやり方には、正直腹が立ってしまいます。 クライアントサイドで動くJAVAScriptの良さを全く活かしていな

    kathew
    kathew 2016/06/06
    バッドノウハウ的なるもの。PHPでJavaScriptを出力しても結果は素のJavaScriptと同じなので、クライアントサイドでの認証は素直にJavaScriptを記述して行った方が良い
  • JavaScriptによる簡易パスワード認証

    サンプル パスワードは「secret」になっています。お試しください。 ソースプログラム <form> <input type="password" size="20" name="pass"> <input type="button" value="認証" onClick="location.href = this.form.pass.value + '.html';"> </form> なお、ジャンプ先の秘密ページの<head>~</head>内に、以下の設定を入れておくことをおすすめします。(googleなどの検索ロボットに秘密ページを探られてしまい、検索ページに載ってしまうことを防ぎます。) <meta name="robots" content="noindex, nofollow"> また、秘密ページのあるディレクトリのデフォルトページ(普通はindex.html。Window

  • JavaScriptでパスワード認証を設定! 簡単な閲覧制限 [ホームページ作成] All About

    パスワードを入力しないとアクセスできない秘密のウェブページを作りたい場合、いくつかの方法があります。例えば、ウェブサーバのBasic認証(基認証)機能を利用したり、パスワードの入力を求めるCGIを作成して使ったりする方法があるでしょう。 しかし、個人サイトなどでは「そこまで強固な認証機能は要らないので、複雑なことはせず、とにかく簡単にアクセス制限を設定したい」という場合もあるでしょう。そのような場合は、JavaScriptでパスワードの入力を求める手軽な認証方法を使ってみてはいかがでしょうか。 完全ではない(脆弱な)代わりに、簡単に作れるJavaScriptでの認証機能 JavaScriptを使ったパスワード認証は「なんちゃって認証」とでも呼べばよいか、完全なアクセス制限にはなりません。URLを直接指定すれば誰でも閲覧可能なため、認証後のURLがバレるだけでパスワードを入力せずにアクセス

    JavaScriptでパスワード認証を設定! 簡単な閲覧制限 [ホームページ作成] All About
    kathew
    kathew 2016/06/06
    こういう方法もあるのか。なるほど
  • 送信ドメインを認証するためのSPFレコードに詳しくなろう | SendGridブログ

    この記事は Sender Policy Framework (SPF): A Layer of Protection in Email Infrastructure の抄訳です。 友人があなたのスマホを取り上げて、勝手にSMSを送信してしまったら?困りますよね。1度そんなことが起きると、受信者は当にあなたから送られたSMSなのかずっと疑うようになるでしょう。信頼関係は壊れてしまうかもしれません。 これはEメールの世界でも同じです。恐ろしいことに、フィッシング詐欺師はユーザ名とパスワードが無くてもあなたになりすましてビジネスメールを送信できてしまいます。 でも安心してください。あなたのブランドとメールのレピュテーションを守ってくれる、Sender Policy Framework(SPF)という仕組みがあります。 Twilio SendGridなど多くのメール配信サービスでは、サーバからサ

    送信ドメインを認証するためのSPFレコードに詳しくなろう | SendGridブログ
  • 間違いから学ぶSPFレコードの正しい書き方 : 迷惑メール対策委員会

    岡山大学 山井成良 2011年4月 1. はじめに 2. 典型的な誤りと正しい書き方 2.1 SPFレコードが複数行存在する 2.2 機構(メカニズム)の記述に誤りがある 2.3 参照方法に誤りがある 2.4 必要な空白文字がない 2.5 その他の間違い 3. チェック方法 1. はじめに 迷惑メールは、現在のところ、送信元アドレスが詐称された状態で送られるものが大多数を占めます。これにより、迷惑メールの送信源追跡を困難にしたり、フィッシング詐欺に利用されたりします。そこで、送信元アドレスの詐称を防止する送信ドメイン認証技術が開発されました。 現在までに実用化されている送信ドメイン認証技術はいくつか存在しますが、そのうち最も普及しているものがSPF(Sender Policy Framework)です。平成22年6月時点におけるjpドメインでの普及率はドメイン数ベースで約40パーセントであ

    kathew
    kathew 2016/06/06
    よく見かけるincludeの指定、その設定はどこにあるのかと思ったら、あれは他のドメインの参照だったのね
  • どさにっき

    2006年3月11日(土) ■ Basic 認証の突破のしかた・その1 _ たまに Basic認証をかけたサイトの一部で認証をdisableするにはみたいなことをやりたいなんて要望を目にする。これが実現可能かどうかといえば可能で、リンク先に書いてあるとおりやればいい。 _ でも、これ危険だと思うのよ。 _ /a/ という URL では認証を要求するが、/a/b/ では認証不要、とした場合。まず /a/ にアクセスして認証にパスし、そのあと /a/b/ にアクセスすると、認証が不要なのにもかかわらず、ブラウザはユーザ、パスワードを送ってしまう。ブラウザを起動してから /a/ に一度もアクセスせずに /a/b/ にアクセスした場合は認証情報は送られない。 _ /~hoge/ はユーザに開放してるけど、/ は管理用の情報が置いてあって認証が必要、なんて構造になっているとあぶない。管理者が認証つき

  • よく使うhtaccess作成(生成)

    htaccessを利用すれば、サイトの引越しや閲覧制限、パソコンとスマートフォン振り分けなどが行えます。 当サイトでは、よく使うhtaccessの書き方の解説と作成(生成)を行うことが出来ます。また、すべてにサンプルも掲載しています。 htaccessを使用するにはWEBサーバがApacheで稼働している必要があります。 htaccessとは? 1.BASIC認証(パスワード認証) WEB上のページを開くときにパスワードを設定することで、利用者を制限する 2.ファイル一覧の表示可否 URLにディレクトリ内のファイル一覧を表示可能/表示不可を設定する 3.エラーページの設定 エラー時に表示されるページをエラーコード(httpステータス)ごとに指定する 4.デフォルトページの指定 URLにディレクトリまで指定されたときに表示するページの優先順を指定する 5.リダイレクト(引越し) サイトのUR