質問: PHPについて、ご相談があって書き込ませてもらっています。 **base64でエンコードされた文字列をGETパラメータで渡すということを考えています。この方法は安全でしょうか?** アドバイスお願いします!
回答: 渡すデータの意味によって 安全 の判定はかわるとおもいます。 パスワードのような機密情報だとしたが、安全ではありません。 なぜなら BASE64 は簡単に元の文字に戻せるからです。 画像データのバイナリーを渡す場合でも注意が必要です。 BASE64 の利用について、セキュリティについてこんな記事があります。 - HTML5, JavaScript: Base64エンコードされた画像をアップロードする上で より > ... > HTMLでimgタグを使って画像を表示したい場合、srcに画像のURLを入れる。これが近年ではcanvasタグやFile APIの導入にともなって、Base64エンコードされた文字列を画像データとしてsrcに入れるケースもブログなどで紹介されている。もしこれをユーザに任意の画像をアップロードさせるWebアプリに使うならXSSに気を払わなければならないという話。 > ... > なにも考えずにDataURL形式で画像を取りまわしてHTMLに埋め込んだりしようとすると、任意のスクリプトが埋め込めてしまうということ。テンプレートエンジンのオートエスケープなどで防がれることもあるだろうが、うっかり画像ファイルデータならエスケープしなくてもいいだろうとオートエスケープを外してしまうかもしれない。 > ... stackoverflow に こんな QA のページがありましたので、紹介しておきます。 - Passing base64 encoded strings in URL