SQL識別子のエスケープ

SQLのリテラルはエスケープが必要であることは広く認知されていると思います。しかし、識別子のエスケープはあまり広く認知されていないように思います。

PostgreSQLの場合、識別子のエスケープAPI(libpqのPQescapeIdentifier)が提供されておりPHPでもpg_escape_identifier()として利用できます。PostgreSQLの場合は”(ダブルクオート)で識別子を囲むことにより、ダブルクォート無しでは利用できない文字(例えば日本語)も識別子に利用できるようになります。
“SQL識別子のエスケープ” の続きを読む

LDAPエスケープ – PHPのldap_escape関数

OWASP TOP10の1位のセキュリティ脅威はインジェクションです。

https://www.owasp.org/index.php/Top_10_2013-A1-Injection

SQLインジェクション、コマンドインジェクションはリファレンスとして掲載されていますが、何故かLDAPインジェクションは掲載されていません。しかし、OWASPの別の文書では簡単に解説されています。

“LDAPエスケープ – PHPのldap_escape関数” の続きを読む

Facebookのコメントプラグインを追加しました

大量に送信されてくるコメントスパムに対処できなかった為、コメント機能を無効にしていましたがFacebookのコメントプラグインを利用してコメントできるようにしました。このプラグインの導入はとても簡単でした。

https://developers.facebook.com/

にアクセスしてFacebookデベロッパーになり、画面上部の「Apps」メニューからコメントアプリを新規に作成し、

https://developers.facebook.com/docs/plugins/comments/

でページに挿入するコードを生成し、ブログテンプレートの適当な場所にペーストするだけで完了です。

1つだけ問題になったのはサードパーティークッキーです。

普段利用するWebブラウザではサードパーティークッキーを無効にしていたのですが、このプラグインにサードパーティークッキーは必須です。無効な場合、アバターは表示されていてもコメントを保存できません。なぜ「ログインしていない」とエラーになるのか、しばらく考えてしまいました。ご注意ください。