2022-07-01から1ヶ月間の記事一覧

PostgreSQL:データベースアカウントに適切な権限を与える

SQLインジェクションの対策として、根本的なものとしては、プレースホルダの方で対応するのが最善。(参考:安全なウェブサイトの作り方 - 1.1 SQLインジェクション) 今回は、保険的な対策の『データベースアカウントに適切な権限を与える』に取り組んだ。 …

SQLインジェクション攻撃とは

SQLインジェクション攻撃とは 発生しうる脅威 注意すべきページの特徴 根本的な解決方法 SQL文の組み立ては全てプレースホルダで実装する なぜ『文字列連結処理』が安全でないのか 『動的プレースホルダ』の使用時には注意が必要 SQL文のリテラルを正しく…

XSS対策:サニタイジング(エスケープ)処理

XSSの具体例 エスケープ処理は出力要素に対して行う なんでエスケープ処理は出力要素? XSSの具体例 とりあえず現状の自分のサイトに対して、悪意あるコンテンツを作成してみた。下記コードを入れると、悪意あるコンテンツが作成される。 他サイトへリダイレ…

XSSとは

発生しうる脅威 XSSの種類 注意すべきページの特徴 対策の種類 HTMLテキストの入力を許可しない場合の対策 HTMLテキストの入力を許可する場合の対策 全てのウェブアプリケーションに共通の対策 参考サイト XSSはクロスサイトスクリプティング(Cross Site Sc…

Sinatra:erbファイルはrubyコードが書ける

少しずつerbファイルの書き方がわかってきた😅どうやら、<% %>で括った部分がruby コードと判定され、変数については<%= %>で括ってあげると認識されるっぽい。 それ以外の部分についてはhtmlとして扱われる。 例えば、下にerbのコード例を示す。 <% require '…

Sinatra:PRGパターンを実装してみた

Sinatraのサーバ部分はruby、Webページはhtmlというハイブリッド型? Sinatraの構成にまだ慣れていなくて、『どう書けばいいねん‍』て感じでしたが、とりあえず手を動かしてみるとだんだん見えてきました 自分の感覚的には、『サーバっぽい部分をrubyで処理…

PRGパターンとは

PRGは、Post/Redirect/Getの略で、フォーム送信後に表示されるページを再読み込み、共有、ブックマークしても、再度フォームを送信するなどの悪影響がないようにするためのウェブ開発デザインパターンのことらしい。 例えば、herokuのサンプルページ(New Ar…