この記事は「プログラミングの間違い」シリーズに含めたいと思います。私は大学の通常の授業でソフトウェア エンジニアリング、エンタープライズ ソフトウェア アーキテクチャ、データベース設計に触れてきましたが、今でも時々次のような事実に対して「罪悪感」を感じます。もちろん、これらはすべて私の主観的な感情であり、Eclipse に向けたものです。 :
あなたは次のような PHP 初心者です:
1. phpDoc などのツールを使用してコードに適切にコメントする方法がわからない
2. Zend Studio や Eclipse PDT などの優れた統合開発環境を知らない
3. Subclipse などのバージョン管理システムの形式を使用しない
4. 特定のコーディングおよび命名標準、および共通の規則を採用せず、プロジェクト開発サイクルでそれらを実装できない
5. 統一された開発方法を使用しない
6.特定の入力や SQL クエリ文字列の変換 (または) や検証を行わない (注釈: PHP 関連関数を参照)
7. コーディングする前にプログラムを徹底的に計画しないでください
8. テスト駆動開発を使用しないでください
9.エラーを有効にしてテストします (注釈: PHP 関数 error_reporting を参照)
10. デバッガーの利点に目をつぶらないでください
11. コードをリファクタリングしないでください
12. プログラムの異なるレベルを分離するために MVC のようなパターンを使用しないでください
13. これらの概念を理解していない: KISS、DRY、MVC、OOP、REST
14. コンテンツを返す代わりに、関数またはクラスで直接出力 (エコー/出力) する
15.単体テストまたは一般テスト
16. 常にハードコーディングされた HTML を返しますが、純粋なデータ、文字列、またはオブジェクトは返しません
17. 「メッセージ」と「構成パラメーター」を常にハードコーディングします
18. SQL クエリ ステートメントを最適化しません
19. __autoload (翻訳アノテーション) は使用しないでください。PHP マニュアルの関連する説明を参照してください)
20. インテリジェントなエラー処理は許可されていません (翻訳: PEAR の ErrorStack を参照してください)
21. 破壊的な転送を行うには、$_POST の代わりに $_GET を使用します。操作
22. 正規表現の使用方法がわからない
23. SQL インジェクションやクロスサイト スクリプティングについて聞いたことがない
24. 単純な構成は許可されておらず、クラスのコンストラクターはパラメーターの転送を受け入れることができません。 set/get メソッド、または実行時に定数定義を実行する
25. オブジェクト指向プログラミング (OOP) のメリットとデメリットを理解していない
26. 状況の大小に関係なく OOP を悪用することで再利用可能なソフトウェアを実現すると考えている
27.コードを OOP に準拠させる必要があります
28. スマートなデフォルトを利用しない
30. ファイルのソース コードを公開したくないが、.php の代わりに .inc 接尾辞を使用する
31.データベース抽象化レイヤーを使用していない
32. DRY スタイルを維持できません。つまり、常に何かをコピーして貼り付けている場合は、設計が不十分であることを示しています
33。 1 つのことだけを実行する関数/クラス/メソッド。これらを組み合わせて使用することはできません
34. 抽象クラス、インターフェイス、ポリモーフィズム、継承、アクセス制御修飾子などの OOP の長所を試すことができませんでした (注釈: public、 private、protected)
35. プログラム アーキテクチャの設計を最適化するために既存のデザイン パターンを使用しないでください。
36. 多数のファイルがある場合はユーザーに操作を許可しないでください。または、ディレクトリの場合は基本ディレクトリを定義します
37。名前空間 (ライブラリ関数に共通の文字列を使用するなど) を使用しないでください
38. データベース テーブルを使用する場合はテーブル プレフィックスを使用しないでください
40. 既存の PHP 開発フレームワークは探索するのが面倒です。 ; 実際、そこには高度な開発コンセプトと素晴らしいコードが含まれています。
翻訳メモ: Ma Yongzhan 著の「40 Bad Habits of PHP Programmers」の翻訳版もあります。これは簡潔で、翻訳者のメモが付いています。
上記では、.net Framework 4.0 の内容を含め、PHP の初心者であることを示す 40 の兆候を紹介します。PHP チュートリアルに興味のある友人に役立つことを願っています。

セッション関連のXSS攻撃からアプリケーションを保護するには、次の測定が必要です。1。セッションCookieを保護するためにHTTPonlyとセキュアフラグを設定します。 2。すべてのユーザー入力のエクスポートコード。 3.コンテンツセキュリティポリシー(CSP)を実装して、スクリプトソースを制限します。これらのポリシーを通じて、セッション関連のXSS攻撃を効果的に保護し、ユーザーデータを確保できます。

PHPセッションのパフォーマンスを最適化する方法は次のとおりです。1。遅延セッション開始、2。データベースを使用してセッションを保存します。これらの戦略は、高い並行性環境でのアプリケーションの効率を大幅に改善できます。

thesession.gc_maxlifettinginttinginphpdethinesthelifsessessiondata、setinseconds.1)it'sconfiguredinphp.iniorviaini_set()。 2)AbalanceSneededToAvoidPerformanceIssues andunexpectedLogouts.3)php'sgarbagecollectionisisprobabilistic、影響を受けたBygc_probabi

PHPでは、session_name()関数を使用してセッション名を構成できます。特定の手順は次のとおりです。1。session_name()関数を使用して、session_name( "my_session")などのセッション名を設定します。 2。セッション名を設定した後、session_start()を呼び出してセッションを開始します。セッション名の構成は、複数のアプリケーション間のセッションデータの競合を回避し、セキュリティを強化することができますが、セッション名の一意性、セキュリティ、長さ、設定タイミングに注意してください。

セッションIDは、機密操作の前、30分ごとにログイン時に定期的に再生する必要があります。 1.セッション固定攻撃を防ぐためにログインするときにセッションIDを再生します。 2。安全性を向上させるために、敏感な操作の前に再生します。 3.定期的な再生は長期的な利用リスクを減らしますが、ユーザーエクスペリエンスの重量を量る必要があります。

PHPのセッションCookieパラメーターの設定は、session_set_cookie_params()関数を通じて達成できます。 1)この関数を使用して、有効期限、パス、ドメイン名、セキュリティフラグなどのパラメーターを設定します。 2)session_start()を呼び出して、パラメーターを有効にします。 3)ユーザーログインステータスなど、ニーズに応じてパラメーターを動的に調整します。 4)セキュリティを改善するために、セキュアとhttponlyフラグを設定することに注意してください。

PHPでセッションを使用する主な目的は、異なるページ間でユーザーのステータスを維持することです。 1)セッションはsession_start()関数を介して開始され、一意のセッションIDを作成し、ユーザーCookieに保存します。 2)セッションデータはサーバーに保存され、ログインステータスやショッピングカートのコンテンツなど、さまざまなリクエスト間でデータを渡すことができます。

サブドメイン間でセッションを共有する方法は?一般的なドメイン名にセッションCookieを設定することにより実装されます。 1.セッションCookieのドメインをサーバー側の.example.comに設定します。 2。メモリ、データベース、分散キャッシュなど、適切なセッションストレージ方法を選択します。 3. Cookieを介してセッションIDを渡すと、サーバーはIDに基づいてセッションデータを取得および更新します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。
