addslashes() の目的と、php での mysql インジェクションを防ぐ方法は何ですか?
1. フォームデータ
はフォームデータを示します
2.php
で取得したフォームデータが自動で追加されました
3.mysql データ (一番下の行)
は mysql に書き込まれませんが、何もありません
4. mysql ソフトウェアによって隠されていると思われます:
私もそれを見つけませんでした
公式声明によると
http://www.php.net/manual/zh/function.addslashes.php
addslashes() の使用例は、データベースにデータを入力する場合です。 たとえば、O'reilly という名前をデータベースに挿入するには、エスケープする必要があります。 DBMS 固有のエスケープ関数 (MySQL の場合は mysqli_real_escape_string()、PostgreSQL の場合は pg_escape_string() など) を使用することを強くお勧めしますが、使用している DBMS にエスケープ関数がなく、特殊文字をエスケープするために使用する場合は、この機能を使います。 データをデータベースに挿入するためだけに、追加のデータは挿入されません。 PHP ディレクティブ magic_quotes_sybase が on に設定されている場合、' の挿入は ' でエスケープされることを意味します。
質問:
1. addleshes() 関数はインジェクションを防ぐためにどのようなメカニズムを使用しますか?
2. フォームで送信されたデータに対して htmlspecialchars() を直接使用しますか?
4. SQL インジェクションを防ぐ最善の方法は何ですか?
.
はフォームデータを示します
2.php
で取得したフォームデータが自動で追加されました
3.mysql データ (一番下の行)
は mysql に書き込まれませんが、何もありません
4. mysql ソフトウェアによって隠されていると思われます:
私もそれを見つけませんでした
公式声明によると
1. addleshes() 関数はインジェクションを防ぐためにどのようなメカニズムを使用しますか?質問:
2. フォームで送信されたデータに対して htmlspecialchars() を直接使用しますか?
4. SQL インジェクションを防ぐ最善の方法は何ですか?
.
ドキュメントに書かれているように、
addslashes
はパラメータの引用符の前にスラッシュを追加することです。 印刷したデータと同様に、パラメーターの前にもスラッシュがあります。 ただし、データベースにはスラッシュを含めないでください。 addslashes
がインジェクションを防ぐ方法は、SQL
を記述するときに入力パラメータを直接適用することでインジェクションできる SQL
の生成を防ぐことです。
たとえば、$sql = "SELECT * FROM user WHERE id = '$id'";
、ここの $id
パラメータが意図的に 1 に操作されている場合' OR '1 = 1'
ということは、SQL
を挿入することを意味するのではありませんか? addslashes
就是为参数的引号前加了个斜杠。
也如你所打印的数据,参数前也有斜杠。
但是数据库里就不应该有斜杠呀!addslashes
是如何防注入的,就是防止在我们写SQL
时直接套用输入参数而导致产生可被注入的SQL
来防注入的。
例如$sql = "SELECT * FROM user WHERE id = '$id'";
,如果这里的$id
参数被人故意操作成了1' OR '1 = 1'
,那不就成了注入SQL
了吗?
而如果用addslashes
加上斜杠,$id
中的引号就会被转意,也就不会产生错误的SQL
また、addslashes
を使用してスラッシュを追加すると、$id
内の引用符が解釈され、間違った SQL
が生成されなくなります。 。ただし、これらのスラッシュはデータが実際に挿入および更新されるときに変換されて戻されるため、これらの結果はデータの書き込みには影響しません。
SQL インジェクションの防止 (入力データベース):
PDO bindingParam または mysqli_stmt_bind_param: SQL インジェクションを回避します。
addslashes: すべての一重引用符、二重引用符、バックスラッシュ、および NUL をエスケープするためにバックスラッシュを使用します。
mysqli_real_escape_string: 特殊なエスケープを行います。
bind_param を使用すると、addslashes、mysqli_real_escape_string、magic_quotes_gpc を使用する必要がなくなります。
例:
あなたが言及したhtmlspecialcharsは、HTML出力時のXSS攻撃を防御するものであり、上記のSQLインジェクションに対する防御とは異なります。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

次の手順でphpmyadminを開くことができます。1。ウェブサイトコントロールパネルにログインします。 2。phpmyadminアイコンを見つけてクリックします。 3。MySQL資格情報を入力します。 4.「ログイン」をクリックします。

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

Redisは、単一のスレッドアーキテクチャを使用して、高性能、シンプルさ、一貫性を提供します。 I/Oマルチプレックス、イベントループ、ノンブロッキングI/O、共有メモリを使用して同時性を向上させますが、並行性の制限、単一の障害、および書き込み集約型のワークロードには適していません。

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

phpmyadminを使用してmysqlに接続する方法は? phpmyadminにアクセスするためのURLは、通常、http:// localhost/phpmyadminまたはhttp:// [サーバーIPアドレス]/phpMyAdminです。 MySQLユーザー名とパスワードを入力します。接続するデータベースを選択します。 [接続]ボタンをクリックして、接続を確立します。
