偽のクロスサイトリクエストを防ぐためのヒント
偽のクロスサイトリクエストの概要
偽のクロスサイト リクエストは防ぐのが難しく、攻撃者がこの方法を使用していたずら、スパム メッセージの送信、データの削除などを行う可能性があります。この攻撃の一般的な形式は次のとおりです:
ユーザーを誘導してクリックさせたり、ユーザーが知らずにアクセスできるようにするための偽造リンク
ユーザーに送信を促すための偽造フォーム。フォームを非表示にしたり、画像やリンクに見せかけたりすることができます。
一般的で安価な防止方法は、ユーザーの書き込み操作が関与する可能性のあるすべてのフォームにランダムで頻繁に変更される文字列を追加し、フォームの処理時にこの文字列をチェックすることです。このランダムな文字列が現在のユーザー 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 はこのランダムな文字列の有効時間を表します。
応用例
フォームを構築中非表示のランダムな文字列のパンくず
をフォームに挿入します

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











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

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

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

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

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

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

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

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