ホームページ  >  記事  >  バックエンド開発  >  PHP アプリケーションの強度を向上させるためのトップ 10 のヒント_PHP チュートリアル

PHP アプリケーションの強度を向上させるためのトップ 10 のヒント_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:56:23901ブラウズ

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%。

  • 共2页:
  • 上一页
  • 1
  • 2
  • 下一页

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/364244.htmlTechArticle烈火建站学院文档 在 Smashing Magazine 的网站,Glen Stansberry 提出十个进阶 PHP 技巧,可以即时提昇你的 PHP 编程实力,其中包括 SQL 注入攻击的...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。