タグ

dbとhtmlに関するlepton9のブックマーク (5)

  • なぜ出力時のHTMLエスケープを省略してはならないのか - Qiita

    メリークリスマス! 週末もPHPを楽しんでますか? ところでWebセキュリティはWebアプリケーションを公開する上で基礎中の基礎ですよね! メジャーな脆弱性を作り込まないことはWeb開発においては専門技術ではなく、プロとしての基です。 中でもXSS (Cross-Site Scriptingクロスサイトスクリプティング)やインジェクションについての考慮は常に絶対に欠いてはならないものです。 現実にはプログラミングには自動車のような運転免許制度がないため、自動車学校に通わず独学で公道に出ることができてしまいます。つまりは基礎知識がないままにWebプログラマとして就職したり、フリーランスとして案件を請けることも現実には罷り通っています。それは一時停止標識も赤信号も知らずにタクシー営業しているようなものです。 このような事情により、体系的な理解のないWeb開発初心者は (時にはn年のキャリアを

    なぜ出力時のHTMLエスケープを省略してはならないのか - Qiita
  • タイアップページでのLiquidの利用について - クックパッド開発者ブログ

    こんにちは。広告事業部の鈴木です。 皆さんはLiquidと呼ばれるテンプレートエンジンをご存知でしょうか? LiquidはShopifyのメンバーを中心として開発されているテンプレートエンジンの一種で、 最近ではJekyllに使われていることでも知られています。 クックパッドの広告事業部では、広告商品の一つであるタイアップページ*1でこのLiquidを活用しています。 例. マルちゃん焼そば弁当コンテスト! [クックパッド] 簡単おいしいみんなのレシピが199万品 このタイアップページでは、そこからリンクされているレシピ応募コンテストページにユーザさんが投稿してくれたレシピ数を表示するのにLiquidが使われています。 タイアップページにはデータベースに保存されたデザイン済みのHTMLに以下のようなプレイスホルダーになっているタグが含まれていて、ページがレンダリングされる際にコンテストへの

    タイアップページでのLiquidの利用について - クックパッド開発者ブログ
  • Web StorageやindexedDBを扱う上でのセキュリティ上の注意点 - 葉っぱ日記

    localStorageやsessionStorage、あるいはindexedDBのようなブラウザ上でのデータの保存が可能になったことで、これらを取り扱ううえでもセキュリティ上の注意点が必要である。 これらのストレージは、localStorageやindexedDBは永続的に、sessionStorageはブラウザやタブを閉じるまでの間データが保持され続けるので、例えばWebアプリケーションがログイン機構を持っている場合にログイン中にこれらのストレージに書き込まれたデータは、ログアウト後も当然参照および書き換えが可能である。Webアプリケーション上のアカウントに紐づいたデータをこれらのストレージに書き込んでいる場合、ログアウト後もアクセス可能なことが問題を引き起こす可能性がある。 例えばTwitterのようなサービスがあったとして、(navigator.onLineプロパティなどを利用して

    Web StorageやindexedDBを扱う上でのセキュリティ上の注意点 - 葉っぱ日記
  • XSS対策に入力時エスケープは非常にややこしい

    to-RさんのXSSの脆弱性を限りなくなくす方法を読んでなんかもにょもにょしたのでエントリーを書く。多分、to-Rさんはこれから書くことに関して理解してて、あの対策を行なってるのかもしれないけど、それでも書く。自分の勉強も兼てるので変なところがあれば教えていただけるとありがたいです。 入力時エスケープは非常にややこしい 確かに、入力値に必ずエスケープしておけば、XSS対策漏れにはなるかもしれない。けれど非常にややこしいことになる。 例えば、受け取ったデータの文字列に対して文字数制限のバリデーションを行なうときにわざわざアンエスケープの処理を行なわないといけないし、DBへの保存の際にもアンエスケープが必要になる。ブログとかでフォームから受け取ったデータのうち、一部のタグは許容するときとかもかな。 ベストの対策はアプリの性質に合わせたエスケープなんだけども、これって完全になくすにはかなりの几帳

  • HTMLをDBみたいに使えるスゴイライブラリ『htmlSql』を CakePHPで使う - h2ospace - builder by ZDNet Japan

    APIRSSなどを提供しているサイトは、情報を簡単に扱うことができますが、例えば Yahoo!の検索結果とか、mixiのニュースとか、あるサイトの一部を取り出したいことってよくあります。(とはいえ、著作権違反には注意 そんな時、PHPのライブラリである「htmlSql」を利用すると便利。このライブラリに、ファイルでもURLでも文字列でも、HTMLで作られたものなら何でも与えると、解析して取り出しやすくしてくれます。しかも、その取り出し方はSQL! 例えば、「id属性が’test’の p要素の内容を取り出したい」という場合には、次のようなSQLを使います。 SELECT text FROM p WHERE $id=="test" 超パワフル。ということで、これを CakePHPで利用するためのテクニック。 まずは、ダウンロードしたファイルの中から次のファイルを「app/vendors」フォ

  • 1