タイトル マークダウンの危険性
本文

このサイトではマークダウンを採用しています

マークダウンを採用することによってDjangoにワードプレスのような書きやすさを追加できました。しかし、マークダウンを採用するとクロスサイトスクリプティング(XSS)の危険性があると思っています。

なぜ危険だと思っているのか。

Djangoのオプションでsafeオプションを追加してHTMLタグを動作するようにしているためです。普段はhttp、https、scriptの文字が含まれている場合バリデーションエラーとして入力できないようにしています。今回はなんらかの方法でバリデーションを突破して上記の文字列が入力された場合を想定しています。禁止用語から上記の3つを外しました。

入力はできますが、ボタンやリンクは機能していません。(他社のリンクが張り付けられた時点でよくはないと思うが・・・

safeを付けた場合どうなるのか?

リンクボタンが表示されました。

Javascriptを動かしてみる

動いてしまった・・・勝手に遷移した挙句に戻るボタンで戻れない非常にめんどくさい。

このサイトで行っている対策

http https scriptという文字が含まれている場合バリデーションエラーになるようになっています。(プログラミングスクールを謳っているポートフォリオでリンクを張れないのは致命的な気もする・・・

マークダウン機能は管理サイトでのみ動作するようにしている。(管理サイトに不正アクセスされた場合終わる。


参考文献

https://runebook.dev/ja/docs/django/topics/security

https://kikuichige.com/11885/













日付 2022年10月17日9:27