PHP関数でSQLインジェクションのバックスラッシュを解決する
マジッククオートとは
オンにすると、すべての ' (一重引用符)、" (二重引用符)、(バックスラッシュ)、および NULL 文字はバックスラッシュで自動的にエスケープされます。これは、addslashes( ) と同じ効果があります。
マジック クォート命令は 3 つあります:
magic_quotes_gpc は HTTP リクエスト データ (GET、POST、COOKIE) に影響します。
magic_quotes_runtime オンにすると、データを取得するほとんどの関数によってデータが返されます。データベースやテキスト ファイルなどの外部ソースはバックスラッシュでエスケープされます。このオプションは PHP の実行時に変更できます。デフォルト値は set_magic_quotes_runtime() および get_magic_quotes_sybase() を参照してください。バックスラッシュの代わりに一重引用符を使用します。このオプションがオンになっている場合、一重引用符は '' としてエスケープされます。方法については、ini_get() を参照してください。値を取得するには、バックスラッシュを使用します。バックスラッシュで囲まれた文字列
説明
stringaddslashes (string $str)
SQL インジェクションの問題が ASP で話題になりました? 国内外の有名な PHP プログラムが「苦境に陥った」。 SQLインジェクションの詳細についてはネット上に記事が多すぎるのでここでは紹介しません。
Web サイトスペースの php.ini ファイル内の magic_quotes_gpc がオフに設定されている場合、フォームによって送信されたコンテンツには一重引用符 (' ) などの機密文字が含まれる可能性があるため、PHP は機密文字の前にバックスラッシュ () を追加しません。 、SQL インジェクションの脆弱性につながります。この場合、addslashes() を使用して問題を解決できます。これは、機密文字の前にバックスラッシュを自動的に追加します。ただし、上記の方法は、magic_quotes_gpc=Off の場合にのみ適用されます。開発者としては、各ユーザーの magic_quotes_gpc がオンかオフかわかりません。すべてのデータが addslashes() で使用される場合、それは「無実の人々を無差別に殺害する」ことになりませんか? magic_quotes_gpc=On で、addslashes() 関数が使用されている場合を見てみましょう:
//変数 $_POST['message'] がフォームから送信された場合、コンテンツはトムの本です
/ /これは MySQL データベースに接続するためのコードです。自分で記述してください
//$_POST['message'] の機密文字の前にバックスラッシュを追加します
$_POST['message'] =addslashes($_POST['message ' ]);
$sql = "INSERT INTO msg_table VALUE('$_POST[message]');";
//リクエストを送信し、メッセージを保存しますコンテンツをデータベースに追加します
$query = mysql_query($sql);
//このレコードをデータベースから抽出して出力すると、トムの本が表示されます
?>
この場合、magic_quotes_gpc =On環境では、入力されたすべての一重引用符 (') は (') になります...
実際、この問題は get_magic_quotes_gpc() 関数を使用して簡単に解決できます。 magic_quotes_gpc=On の場合、この関数は TRUE を返し、magic_quotes_gpc=Off の場合、FALSE を返します。この時点で、問題が解決したことに多くの人が気づいたはずです。コードを参照してください:
//magic_quotes_gpc=Off の場合は、船荷証券に送信される $_POST['message'] の機密文字にバックスラッシュを追加します
//magic_quotes_gpc=On の場合は、
if ( !get_magic_quotes_gpc) を追加しないでください()) {
$_POST['message'] =addslashes($_POST['message']);
} else {}
?>
実際、この時点で問題は解決されています。ここでもう 1 つの小さなトリックをご紹介します。
フォームに複数の変数が送信される場合があります。場合によっては、12 を超える変数が存在する場合もあります。では、addslashes() を何度もコピー&ペーストするのは少し面倒でしょうか?フォームや URL から取得したデータはすべて $_POST、$_GET などの配列形式で表示されるため、関数:
関数引用符($content)
{
//magic_quotes_gpc=Off の場合、処理を開始します
if (!get_magic_quotes_gpc()) {
//$content が配列かどうかを判断します
if (is_array($content)) {
/ /If $content は配列であり、その各要素を処理します
foreach ($content as $key=>$value) {
$content[$key] =addslashes($value);
}
} else {
// $content が配列でない場合、一度だけ処理されます
addslashes($content);
}
} else {
//magic_quotes_gpc=On の場合、処理されません
}
//Return $content
return $content;
}
?>

ホット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)

ホットトピック











このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7
