ホームページ php教程 php手册 偽のクロスサイトリクエストを防ぐためのヒント

偽のクロスサイトリクエストを防ぐためのヒント

Jun 21, 2016 am 08:52 AM
action quot uid

偽のクロスサイトリクエストの概要

偽のクロスサイト リクエストは防ぐのが難しく、攻撃者がこの方法を使用していたずら、スパム メッセージの送信、データの削除などを行う可能性があります。この攻撃の一般的な形式は次のとおりです:

ユーザーを誘導してクリックさせたり、ユーザーが知らずにアクセスできるようにするための偽造リンク

ユーザーに送信を促すための偽造フォーム。フォームを非表示にしたり、画像やリンクに見せかけたりすることができます。

一般的で安価な防止方法は、ユーザーの書き込み操作が関与する可能性のあるすべてのフォームにランダムで頻繁に変更される文字列を追加し、フォームの処理時にこの文字列をチェックすることです。このランダムな文字列が現在のユーザー ID に関連付けられている場合、攻撃者にとってリクエストを偽造するのはさらに困難になります。

Yahoo が偽のクロスサイトリクエストに対処する方法は、.crumb と呼ばれるランダムな文字列をフォームに追加することです。Facebook にも同様の解決策があり、そのフォームには post_form_id と fb_dtsg が含まれることがよくあります。

ランダム文字列コードの実装

このアイデアに従い、crumb の実装をコピーします。コードは次のとおりです。

クラスクラム {

CONST SALT = "あなたの秘密の塩";

静的 $ttl = 7200;

静的パブリック関数チャレンジ($data) {

return hash_hmac('md5', $data, self::SALT);

}

静的パブリック関数 issueCrumb($uid, $action = -1) {

$i = ceil(time() / self::$ttl);

return substr(self::challenge($i . $action . $uid), -12, 10);

}

静的パブリック関数 verifyCrumb($uid, $crumb, $action = -1) {

$i = ceil(time() / self::$ttl);

if(substr(self::challenge($i . $action . $uid), -12, 10) == $crumb

substr(self::challenge(($i - 1) . $action . $uid), -12, 10) == $crumb)

true を返します;

false を返します;

}

}

コード内の $uid はユーザーの一意の識別子を表し、$ttl はこのランダムな文字列の有効時間を表します。

応用例

フォームを構築中

非表示のランダムな文字列のパンくず

をフォームに挿入します

input type="submit">

フォームの処理デモ.php

クラムを確認してください

if(Crumb::verifyCrumb($uid, $_POST['crumb'])) {

//通常のプロセスに従ってフォームを処理します

} else {

//クラム検証に失敗しました。エラー プロンプト プロセス

}



このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

トマトノベルのuidはどこで確認できますか? トマトノベルのuidはどこで確認できますか? Feb 28, 2024 pm 04:25 PM

トマトノベルソフトウェアを使用する際は、アカウントにログインすると、よりカスタマイズされたサービスと利便性をお楽しみいただけます。アカウントにログインした後、UID (Unique User Identifier) も表示できます。これは非常に重要な情報です。場合によっては、この UID が非常に重要になることがあります。トマト ノベルズのどこで UID を確認できますか?知りたいユーザーは、この記事で閲覧手順を確認してください! トマト ノベル uid の答えを確認する場所: [トマト ノベル] - [マイ] - [フィードバックとヘルプ] - [フィードバック] - [クリック 5]回]。具体的な手順: 1. まずトマトノベルソフトウェアを開き、ホームページに入った後、右下隅の[マイ]をクリックする必要があります; 2. 次に、マイページでページにスライドします

DJI Osmo Action 5 Pro: GoPro Hero 13 Black を割り込む可能性のある発売価格を小売店が明らかにしたため、発売日が議論される DJI Osmo Action 5 Pro: GoPro Hero 13 Black を割り込む可能性のある発売価格を小売店が明らかにしたため、発売日が議論される Sep 04, 2024 am 06:51 AM

DJIはまだ新しいアクションカメラを導入する計画を確認していません。その代わりに、GoPro は今年、9 月 4 日に 2 台の新しいアクション カメラを発表すると予告し、ライバルに先んじることになるようです。

Linux のすべての実際のユーザーを検索する 1 行コマンド Linux のすべての実際のユーザーを検索する 1 行コマンド Feb 18, 2024 pm 05:50 PM

皆さんこんにちは、Xianyuです。 Linux に触れたことのある友人は皆、Linux (または Unix 系) には 3 種類のユーザーがあることを知っています。 スーパー ユーザー (UID 0): 最も高い権限を持つ root ユーザー。システム ユーザー (UID 1 ~ 999): システム サービスとデーモン プロセスを実行するために使用されるシステム組み込みユーザー。一般ユーザー (UID 1000~60000): Linux システムリソースを使用できるようにするために作成され、ユーザーが作成するアカウントは通常は通常のアカウントです。ここで問題となるのは、Linux の実際のユーザー (root ユーザーと一般ユーザー) をどのようにしてすばやく見つけるかということです。正式に開始する前に、まずツール getent を紹介します。ゲテント

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

新しい DJI Osmo アクションカメラが、最近の GoPro や Insta360 リリースに匹敵するおそらく 2024 年夏の発売前に発見される 新しい DJI Osmo アクションカメラが、最近の GoPro や Insta360 リリースに匹敵するおそらく 2024 年夏の発売前に発見される Jul 01, 2024 am 09:49 AM

DJI が Osmo Action 4 (Amazon で現在 299 ドル) をリリースしてからほぼ 1 年が経過しました。それ以来、同社は新しい RS カメラ ジンバルを含む他の部門に注力してきました。それに加えて、Avata だけでなく、さまざまなドローンも導入しています。

Linux ユーザー UID と GID を表示する方法の詳細については、こちらをご覧ください。 Linux ユーザー UID と GID を表示する方法の詳細については、こちらをご覧ください。 Mar 20, 2024 pm 12:06 PM

ユーザー UID と GID は、Linux システムでユーザーとグループを識別するために使用される数値識別子です。 Linux システムを使用する場合、ユーザーとファイルのアクセス許可を管理するためにユーザーの UID と GID を表示する必要があることがよくあります。この記事では、Linux システムでユーザー UID と GID を表示するさまざまな方法を詳しく紹介し、具体的なコード例を添付します。 1. コマンドでユーザー UID と GID を確認する 現在のユーザーの UID と GID を確認します: id 上記のコマンドを実行すると、システムは現在のユーザーの UID、GID、GID を表示します。

Linux コマンド: ユーザー UID と GID を表示するためのヒント Linux コマンド: ユーザー UID と GID を表示するためのヒント Mar 20, 2024 pm 12:33 PM

Linux オペレーティング システムは、広く使用されているオープン ソース オペレーティング システムであり、ユーザーがシステムをより簡単に管理できるようにする豊富なコマンド ライン ツールをユーザーに提供します。 Linux システムでは、各ユーザーは一意のユーザー識別子 (UserID、UID) とグループ識別子 (GroupID、GID) を持っています。ユーザーの UID と GID を理解することは、システム管理とファイル権限管理にとって非常に重要です。この記事では、Linux システムをより適切に管理するためにユーザーの UID と GID を表示するためのいくつかのテクニックを紹介します。

UIDは口座番号ですか? UIDは口座番号ですか? Mar 02, 2023 pm 12:01 PM

UID はアカウント番号ではなく、User Identification の略です。ネットワーク プラットフォームに登録するときにシステムによって自動的に生成される値です。UID ユーザーがネットワーク プラットフォームに登録すると、システムは自動的に UID 値を与えます。これは、この名前を付けることを意味します。ユーザーは番号を割り当てます。

See all articles