PHP アプリケーションの強度を向上させるためのトップ 10 のヒント_PHP チュートリアル
Agni Website Building Academy ドキュメント Smashing Magazine の Web サイトで、Glen Stansberry は、SQL インジェクション攻撃の「チートシート」や判断文の部分的な簡略化など、PHP プログラミング スキルを即座に向上させる 10 の高度な PHP スキルを提案しました。 、最後の手段として正規表現、三項演算子、Memcached データベース キャッシュ システムなどを使用する 以下は詳細な内容です。
PHP は 1995 年に素朴なプログラミング言語として始まりました。PHP は長年にわたって急速に発展し、現在では最も人気のある Web 開発言語の 1 つとなり、多くの人気のある Web サイトが PHP を使用して開発されており、プログラムや Web サイトのプロジェクトの大部分が PHP で作成されています。この人気のある言語で。
PHP は非常に人気があるため、Web サイト開発者が PHP を知らないということはほとんど不可能です。このチュートリアルは、PHP の学習の初期段階を完了し、一生懸命取り組む準備ができている人を対象としています。これらのヒントは、PHP 開発者がプログラミングするたびに学習して使用する必要がある優れたヒントであり、PHP の習熟度を高め、コードをより速く、より簡潔に、より優れたパフォーマンスで実行できるようになります。
1. SQL インジェクション攻撃のチートシートの使用
SQL インジェクション攻撃は非常に厄介なもので、ハッカーがコードの穴を悪用してデータベースに侵入できるようにするセキュリティ ホールです。この記事は MySQL とは関係ありませんが、多くの PHP プログラムは MySQL データベースを使用するため、安全なコードを作成したい場合は、どのような状況を避けるべきかを知っておくと役立ちます。
Furruh Mavituna は、PHP と MySQL のセキュリティ脆弱性に関する章を含む、興味深い SQL インジェクション攻撃チートシートを作成しました。そこに記載されている動作を回避できれば、プログラムは攻撃に対して脆弱ではありません。
2. さまざまな比較演算子の違いを理解する
比較演算子は PHP の非常に重要な部分ですが、残念なことに、多くのプログラマはこれらの比較演算子の違いに詳しくありません。実際、IO Reader の Web サイトに掲載された記事によると、多くの PHP 開発者は PHP のさまざまな比較を区別できません。演算子の違い、記事からの引用:
これは非常に重要ですが、多くの PHP 開発者は、== と === の違いを単純に知りません。基本的に、== は、比較する前に 2 つの値が等しいかどうかを決定します。例: 1== '1' (true); === は値とデータ型を同時に決定します。例: 1==='1' (false) 開発者はこれらの演算子の影響をすぐに理解する必要があります。 strpos() などの一般的に使用される関数では、PHP はゼロを「false」として扱うため、=== がないと、検索された文字列が長い文字列の先頭にあるのか、または存在しないのかを知る方法がありません。すべて、他の多くのアプリケーションでは、=== は、戻り値 0 が必ずしも false に等しくない場合に非常に役立ちます。
PHP.net Web サイトにアクセスして、さまざまな比較演算子のリストを確認できます。
3. 判決文のelse部分を簡略化します
3 番目と 4 番目のポイントはコードの可読性を低下させる可能性があることに注意してください。これらの 2 つのポイントは、コードの可読性を犠牲にしたくない場合はスキップすることをお勧めします。
コードを単純化して小さくすることができるのは、通常、else ステートメントの内容を抽出することです。Christian Montoya は、文字を変換するために短い else ステートメントを使用する良い例を示しています。
一般的なその他の物語文:
以下が引用内容です: if(thiscondition) { $x = 5; } else { $x = 10; } |
$x のデフォルト値が 10 の場合、else 部分で値を指定せずに 10 から開始します。
リーリー リーリー大きな違いはないように見えますが、プログラム内に多くの else ステートメントがある場合、累積的な影響は明らかです。
4. 括弧を廃止します
else ステートメントを簡略化するのと同じように、制御構造の後に式が 1 つしかない場合は、式の前後のかっこを破棄すると、一部の文字を節約できます。 Evolt.org には、括弧の使用を減らす方法の優れた例があります。
以下は引用内容です: if ($gollum == 'halfling') { $height --; } |
这是相同的:<br>
以下为引用的内容: if ($gollum == 'halfling') $height --; |
这个方法可以在程式中多次使用:<br><br>
以下为引用的内容: if ($gollum == 'halfling') $height --; else $height ++; if ($frodo != 'dead') echo 'Gosh darnit, roll again Sauron'; foreach ($kill as $count) echo 'Legolas strikes again, that makes' . $count . 'for me!'; |
5. 取 str_replace(),捨 ereg_replace() 及 preg_replace()
以效率来说,str_replace() 比正规表达式更适合用来取代字符串,据一些研究,str_replace() 的效率比 ereg_replace() 和 preg_replace() 高 61%。
<span><span class="google-src-text" style="DIRECTION: ltr; TEXT-ALIGN: left">$x = 10;</span> $ x = 10 ;</span> <span><span class="google-src-text" style="DIRECTION: ltr; TEXT-ALIGN: left">if( this condition )</span>如果(这种情况)</span> <span><span class="google-src-text" style="DIRECTION: ltr; TEXT-ALIGN: left">{</span> (</span> <span><span class="google-src-text" style="DIRECTION: ltr; TEXT-ALIGN: left">$x = 5;</span> $ x = 5 ;</span> <span><span class="google-src-text" style="DIRECTION: ltr; TEXT-ALIGN: left">}</span> )</span>
- 共2页:
- 上一页
- 1
- 2
- 下一页

phpssionscanStorestrings、numbers、arrays、andobjects.1.strings:textdatalikeusernames.2.numbers:integersorfloatsforcounters.3.arrays:listslikeshoppingcarts.4.objects:complextructuresthataresialized。

tostartaphpsession、outsession_start()atthescript'sbeginning.1)placeitbe foreanyouttosetthesscookie.2)usesionsionsionsionserdatalikelogintatussorshoppingcarts.3)再生セッションインドストップレベントフィックスアタック

セッション再生とは、新しいセッションIDを生成し、セッション固定攻撃の場合にユーザーが機密操作を実行するときに古いIDを無効にすることを指します。実装の手順には次のものが含まれます。1。感度操作を検出、2。新しいセッションIDを生成する、3。古いセッションIDを破壊し、4。ユーザー側のセッション情報を更新します。

PHPセッションは、アプリケーションのパフォーマンスに大きな影響を与えます。最適化方法には以下が含まれます。1。データベースを使用してセッションデータを保存して応答速度を向上させます。 2。セッションデータの使用を削減し、必要な情報のみを保存します。 3.非ブロッキングセッションプロセッサを使用して、同時実行機能を改善します。 4.セッションの有効期限を調整して、ユーザーエクスペリエンスとサーバーの負担のバランスを取ります。 5.永続的なセッションを使用して、データの読み取り時間と書き込み時間を減らします。

phpsesionsareserver-side、whilecookiesareclient-side.1)Sessionsionsionsoredataontheserver、aremoresecure.2)cookiesstoredataontheclient、cookiestoresecure、andlimitedinsizeisize.sesionsionsionivationivationivationivationivationivationivationivate

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









