magic_quotes_gpc と magic_quotes_runtime_PHP チュートリアルに基づく違いと使い方の紹介
データベースに書き込みたいデータに「 」などの文字が含まれているが、除外したくない場合に非常に便利です。
などの文字がこれらの文字の前に自動的に追加されます。中国の広大な土地と豊富な資源"笑"
China\地大物博"笑"
は、set_maginc_quotes_runtime(0)を使用してオフにすることができます。もちろん、php.iniで直接設定することもできます
get_magic_quotes_runtime()は、PHPの値を取得します。環境変数 magic_quotes_runtime
magic_quotes_gpc がオンになっていると、主にすべての GET、POST、COOKIE データに対してaddlashes() が自動的に実行されます。これは二重レベルのエスケープを引き起こすため、magic_quotes_gpc によってエスケープされた文字列に対しては使用しないでください。この状況に遭遇した場合は、 get_magic_quotes_gpc() 関数を使用して
この 2 つは異なります
。
set_magic_quotes_runtime(1) はオンにすることを意味し、set_magic_quotes_runtime(0) はオフにすることを意味します。 set_magic_quotes_runtime(1) が使用されると、データベースから、または fread などの関数を通じて読み取られたテキストは、オーバーフローを防ぐために ' " とバックスラッシュを自動的にエスケープします。これは、データベースからデータを転送するときに非常に便利です。ただし、一般的には、これを有効にする必要があります。オフにすると、データベースから読み取られたデータに一重引用符、二重引用符、バックスラッシュが追加され、Discuz や PHPWind などのパブリック ファイルで異常な表示が発生します。 set_magic_quotes_runtime(0) をヘッダーに追加して、magic_quotes_runtime を強制的に閉じます。
magic_quotes_gpc
アクションの範囲: WEB クライアント サーバー;
アクションの時間: たとえば、スクリプトの実行時にリクエストが開始されます。
magic_quotes_runtime
アクションの範囲: ファイルから読み取られたデータ、exec() の実行結果、または SQL クエリから取得されたデータ。
アクションの時間: スクリプトが実行状態で生成されたデータにアクセスするたび。
それで
magic_quotes_gpc の設定値は、Get/Post/Cookies を通じて取得されるデータに影響します。
magic_quotes_runtime の設定値は、ファイルから読み取られるデータ、またはmagic_quotes_gpc が渡すデータに影響します。通常、データをデータベースに保存する前にエスケープする必要があります。
magic_quotes_gpc をコード内で動的にオンまたはオフにするには、php.ini に移動する必要があります。
コード内で get_magic_quotes_gpc を使用して、magic_quotes_gpc のステータスを取得できます。
magic_quotes_gpc がオフの場合、データを手動で追加する必要があります。コードは次のとおりです。
function new_addslashes($string) {
if (is_array($string)) {
foreach ($string as $key => $value) {
$string[ $key] = new_addslashes($value); $string
コードをコピー
コードは次のとおりです。
$data1 = $_POST['aaa']
$data2 = implode(file('1.txt'));
if (get_magic_quotes_gpc()) {
//データ $data1 を直接データベースに書き込みます
$data1 =addslashes($data1);
//データ $data1 をデータベースに書き込みます
// データ $data2 をデータベースに書き込みます
// データベースから読み取られたデータは直接出力されます
}
++++++++++++++++++++++++++++++++++++++++++++++ ++
経験の概要:
1. GPC の場合、システムで magic_quotes_gpc がオンになっているかどうか (つまり、php.ini で magic_quotes_gpc = On) に関係なく、get、post、cookie の内容をエスケープするために、一律に magic_quotes_gpc をオンにします。 。動作は以下の通りです。
(uchomeシステムより抜粋)
function sawdslashes($string) {
if (is_array($string)) {
foreach ($string as $key => ; $val) {
$magic_quote = get_magic_quotes_gpc();
if(empty($magic_quote)) {
$_GET = saddslashes($_GET);
$_POST = sawdslashes($_POST);
}
//COOKIE 、意味
$prelength = strlen($_SC['cookiepre'])
foreach ($_COOKIE as $key => $val) {
if(substr($key, 0, $prelength) == $_SC[' cookiepre']) {
$_SCOOKIE[(substr($key, $prelength))] = empty($magic_quote) ? maddslashes($val) : $val; オフにします。つまり、set_magic_quotes_runtime(0) は、データベースから読み取られたデータに一重引用符、二重引用符、バックスラッシュを自動的に追加できません。このように、データベースに対する操作は次のようになります。データベースにデータを追加する前に、データに対して手動で addslashes() を実行し、データベースからデータをフェッチするときに、逆の操作、つまり、stripslashes() を実行します。 。
3. コンテンツをシリアル化するには、裸のデータを保持し、エスケープ、stripslashes() を削除してから、シリアル化されたコンテンツをデータベースに保存します (シリアル化されたコンテンツには単一の引用符 (' )、二重引用符 (")、バックスラッシュ ())、例は次のとおりです:
$feedarr['body_data'] = Serialize(stripslashes($body_data));
++++++++++++++++++++++++++++++++++++++++++++++ ++++++
関数 set_magic_quotes_runtime() が非推奨であるという問題が発生しますか?
非推奨: PHPCMS のインストール時に set_magic_quotes_runtime() 関数が非推奨であるというエラーが発生しました。ネットワークと情報を確認したところ、set_magic_quotes_runtime() 関数は PHP5.3 および PHP6.0 以降に削除されたことがわかりました。
次の代替手段を使用できます:
@set_magic_quotes_runtime(0);
または
sourceprint を表示? ini_set("magic_quotes_runtime", 0);
または
sourceprint を表示しますか?
if (phpversion() set_magic_quotes_runtime(0)
}
;
www.bkjia.com
true
http://www.bkjia.com/PHPjc/326823.html
技術記事
データベースに書き込むデータに「 」のような文字が含まれていて、それらを除外したくない場合に非常に便利です。中国語などの文字の前に自動的に追加されます...

セッション固定攻撃を防ぐための効果的な方法には、次のものがあります。1。ユーザーがログインした後にセッションIDを再生します。 2。安全なセッションID生成アルゴリズムを使用します。 3。セッションタイムアウトメカニズムを実装します。 4。HTTPSを使用したセッションデータを暗号化します。これらの措置は、セッションの固定攻撃に直面するときにアプリケーションが破壊されないようにすることができます。

セッションのない認証の実装は、サーバー側のセッションストレージなしですべての必要な情報がトークンに保存されるトークンベースの認証システムであるJSonWebtokens(JWT)を使用することで実現できます。 1)JWTを使用してトークンを生成および検証する、2)トークンが傍受されるのを防ぐためにHTTPSが使用されることを確認する、3)クライアント側にトークンを安全に保存する、4)改ざんを防ぐためにサーバー側のトークンを検証する、5)短期アクセスや長期的なリフレイを使用するなどのトークンの取り消しメカニズムを実装する。

PHPセッションのセキュリティリスクには、主にセッションハイジャック、セッションの固定、セッション予測、およびセッション中毒が含まれます。 1。HTTPSを使用してCookieを保護することにより、セッションハイジャックを防ぐことができます。 2。ユーザーがログインする前にセッションIDを再生することにより、セッションの固定を回避できます。3。セッションの予測は、セッションIDのランダム性と予測不可能性を確保する必要があります。 4.セッションの中毒は、セッションデータを確認およびフィルタリングすることで防ぐことができます。

PHPセッションを破壊するには、最初にセッションを開始してから、データをクリアしてセッションファイルを破壊する必要があります。 1。Session_start()を使用してセッションを開始します。 2。Session_unset()を使用して、セッションデータをクリアします。 3.最後に、session_destroy()を使用してセッションファイルを破壊して、データのセキュリティとリソースのリリースを確保します。

PHPのデフォルトセッションの保存パスを変更する方法は?次の手順で達成できます。Session_save_path( '/var/www/sessions'); session_start(); PHPスクリプトで、セッション保存パスを設定します。 session.save_path = "/var/www/sessions"をphp.iniファイルに設定して、セッションの保存パスをグローバルに変更します。 memcachedまたはredisを使用して、ini_set( 'session.save_handler'、 'memcached')などのセッションデータを保存します。 ini_set(

tomodifydatainaphpsession、starthessession withsession_start()、$ _sessiontoset、modify、orremovevariables.1)startthessession.2)

配列はPHPセッションに保存できます。 1。セッションを開始し、session_start()を使用します。 2。配列を作成し、$ _Sessionで保存します。 3. $ _Sessionを介して配列を取得します。 4.セッションデータを最適化してパフォーマンスを向上させます。

PHPセッションガベージコレクションは、有効期限が切れたセッションデータをクリーンアップするために確率メカニズムを通じてトリガーされます。 1)構成ファイルにトリガー確率とセッションのライフサイクルを設定します。 2)Cronタスクを使用して、高負荷アプリケーションを最適化できます。 3)データの損失を避けるために、ごみ収集の頻度とパフォーマンスのバランスを取る必要があります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

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

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

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック









