JS縺?fetch,xhr/iframe/canvas/WebStorage,IndexedDBでクロスオリジンは危髯?
Access-Control-Allow-Originレスポンスヘッダ縺?CORS(cross origin resource sharing)許可を判藹??できる
CSP(Content-Security-Policy)レスポンスヘッダある縺?metaタグで許可するJSを判藹??できる
=========================
2022-04-06
SAML
SSOのログイン状態を保持する認証プロバイダ繝?(IdP)を使い各アプ繝?(ServiceProvider)縺?SSOを実現する
SSOの臀??組みにはエージェント方藹??、リバースプロキシ方藹??、代理認証方藹??な縺?
ユーザ縺?Webサービスにアクセ繧?
WebサービスからSSO認証プロバイダーサーバ縺?SAML認証鐔??求をPostする
SSO認証プロバイダーサーバ縺?SAML認証を解析、ユーザに鐔??証を転送
ユーザはそれ縺?Webサービスにログインする
SAMLはログイン時にユーザー情報をチェック、OAuthはユーザーの情報を登骭?
OAuthはアプリケーションを連動させるAPIで有効なアクセストークンかを見る
アクセストークンには「いつ」「どこで」「なんのために」作られたのか分からない
OpenID縺?IDトークンを使い「いつ」「どこで」「なんのために」作られたのか分かる
OAuth 2.0、OpenID Connect、SAMLを比較
OAuth 2.0:新しいアプリケーションに登録して、新しい連絡先をFacebookや携帯電話の連絡先から自動的に藹??得することに同諢?した場合は、おそら縺?OAuth 2.0が使繧?れています。この觸??準は、安全な藹??任アクセスを觸??供します。つまり、ユーザーが認証情報を共有しな縺?ても、アプリケーションがユーザーに代繧?ってアクションを起こしたり、サーバーからリソースにアクセスしたりすることができます。これは、アイデンティティプロバイダー・??IdP)がユーザーの承鐔??を得て、サードパーティのアプリケーションにトークンを発鐔??できるようにすることで藹??現されます。
OpenID Connect:Googleを使っ縺?YouTubeなどのアプリケーションにサインインしたり、Facebookを使ってオンラインショッピングのカートにログインしたりする場合に使用されるのが、この鐔??証オプションです。OpenID Connectは、組織がユーザーを認証するために使用するオープンスタンダードです。IdPはこれを利用して、ユーザーがIdPにサインインした後、他縺?Webサイトやアプリにアクセスする際に、ログインしたりサインイン情報を共有したりする必要がないようにします。
SAML:SAML認証は、多縺?の場合に臀??事環藹??で使用されます。たとえば、企業のイントラネットやIdPにログインした後、Salesforce、Box、Workdayなどの藹??数の追加サービスに、認証情報を再入力せずにアクセスできるようになります。SAMLは、IdPとサービスプロバイダーの間で鐔??証・鐔??可データを交觸??するため縺?XMLベースの觸??準で、ユーザーのアイデンティティとアクセス許可を検証し、サービスへのアクセスの許藹??/拒否を決藹??します。
OAuth、OpenID Connect、SAMLの違いとは・?? | OktaOath: idpがトークンを発鐔??、Webサイト間でユーザを認識し3rdからでも個人情報を使えるようになる
OpenID(OIDC): idp縺?JWT(トーク繝?)で鐔??証するOauth系縺?SSO、Oauthの拡張でログインが3rdからもできるようになる
SAML: idpで各アプリやAD間をXMLメッセージにより認証管理しSSOを実軆??
OpenID縺?SAMLが同じような觸??閭?
SAMLはユーザ固有の傾向で大企讌?SSOが多い、OpenIDはアプリ固有の傾向縺?Webサイトやモバイルアプリが多い
SAMLよりOIDCの方が新し縺?SPAやスマホと親和性が高い
SaaSとし縺?OpenID縺?Okta縺?idp、SAML縺?PingFederate縺?idpがメジャ繝?
=========================
2016-01-03
■XSS対軆??、CSRF対軆??、脆弱性チェッ繧?
情報処理推進觸??構にチェックリスト有
https://www.ipa.go.jp/security/vuln/websecurity.htmlXSS対軆??
フォーム送信藹??の確認画面で縺?HTMLエスケープ等でサニタイズされた内容の軆??果を表示
DBへのクエリについてはプレースホルダやエスケープ等縺?SQLインジェクションを防ぐ
target="_blank"縺?XSSになるので危ない、rel="noopener noreferrer"を付ける
https://b.hatena.ne.jp/entry/s/webtan.impress.co.jp/e/2020/03/13/35510 https://laboradian.com/test-window-opener/CSRF対軆??
前ページ縺?hidden値を入れる
他
クッキーに具臀??的なものは入れない、Cookie縺?HttpOnly属性、HTTPS通信で縺?secure属諤?
エラーメッセージを表示しない
不要なファイルは削髯?
XMLの藹??部藹??態藹??照は軆??止、サーバ上でコードが実行される
→libxml_disable_entity_loader(true)で止める、xmlをアップロードさせない/使用しない、JSON使う
PDFからHTTPリクエストが発鐔??される
→PDFをアップロードさせない
------
//SQLインジェクション対策
$sql = "UPDATE users SET name='.mysql_real_escape_string($name).'WHERE id='.mysql_real_escape_string ($id).'";
\ " ' を最菴?限、\エスケープ
NUL (ASCII 0) /n /r / ' " およ縺?CTRL+Zをエスケープしたい
//DOS対軆??
2重ポスト
IPと日臀??縺?2重ポストを防ぐ(同IPのポストがx秒以内を弾く)
■サニタイズの方觸??
DOCには生のテキスト、DB縺?HTMLにはエスケープ済みのものを入れる
窶? 入力があれ縺?htmlエスケープしDBに入れる
窶? html表示はそのま縺?htmlエスケープ状態で出力
窶? Docへ縺?htmlエスケープを解除し表示
窶? htmlフォーム内表示縺?htmlエスケープを解除し表示
htmlエスケープ
https://weblan3.com/html/special-character
バッククォート以藹??は分かり易いで文字表鐔??でエスケープする、改鐔??はエスケープしない
< < < 不等藹??(より蟆?さい)
> > > 不等藹??(より大きい)
& & & アンパサンド
" " " 二重引用符
' ' ' シングルクォート,アポストロフ繧?
; ;: ; セミコロ繝?
\ \ &bsol バックスラッシ繝?
` ` バッククォート
========
■JSONP
scriptタグを使用してクロスドメインなデータを藹??得する仕組みのことである。
HTML縺?scriptタグ、JavaScript(関数・??、JSONを組み合繧?せて藹??現される
GoogleAnalyticsのクッキー縺?1stパーティでサイト側がオーナでありGoogleがオーナーではない
サイト側縺?JSでクッキーが作成されるようなっている
クッキーが送信される相手はどこか?が重要縺?Googleでな縺?サイト側に送信される
アクセス履歴は別途データをGoogleに送信しており、クッキーはセッション管理に使用される