PHPの豆知識の研究(1)
1. PHP ベースの Webshell 攻撃
Wuyun で PHP ベースの Webshell 攻撃を見ました。
通常の PHP コードを使用して実際のシェルのコンテンツを暗号化し、URL のみを残して画像に保存する高度に隠蔽された Web シェル。URL は暗号化されたままであるため、外部から検出される機能はありません。上記URLを開くと404が表示されますが、この404ページは404を装ったトロイの木馬ですが、タイトルが404 Not Foundに変更されています。
2. else ステートメントの使用量を減らす
if else については、構造的な整合性を追求する人もいます。これは良いことのように思えるかもしれませんが、場合によってはコードが煩雑になる可能性があります。論理的な混乱を招くため、1 つの結果を基準として使用し、他の状況が発生した場合に if 判断を行うことができます。つまり、以下の右の図に示すように、例外がある場合は B になります。 :
3. シングルページ アプリケーション
シングル ページとは、すべての操作とレイアウトが 1 ページで実行され、ページ ジャンプが必要なく、さまざまなユーザーのリクエストに応じてさまざまなコンテンツがロードされることを意味します。
利点: シンプルなページ構造、少ないデータ量、帯域幅の節約、高速応答、優れたエクスペリエンス、開発、保守、最適化が簡単
欠点: ajax テクノロジーの使用は SEO に役立ちません。
4. 検索エンジンに Ajax コンテンツをクロールさせます
主に前のケースの単一ページ構造の場合、プログラムは # 構造 URL を通じてページ コンテンツを制御しますが、検索エンジンによってクロールされません。
方法 1: Twitter は「シャープ記号 + 感嘆符」構造を使用していますが、エクスペリエンスは良くなく、面倒です。
方法 2: ページを更新せずに、ブラウザのアドレス バーに表示されるアドレスを変更します。手順は次のとおりです。
A. History API を使用してハッシュ記号構造を置き換え、各 # 記号が通常のパス URL になり、検索エンジンがすべての Web ページをクロールできるようにします。
B. Ajax 部分を処理し、URL に基づいてコンテンツをクロールする JavaScript 関数を定義します。
C. マウスのクリック イベントを定義し、History オブジェクトの Popstate イベントを使用してブラウザの「進む/戻る」ボタンを処理します。
D. サーバー側を設定します。
5. CURL_MULTI_INIT()
以前はcurl_init()を使用していましたが、最近curl_multi_init();を見たことがありますが、curl_multiの手順を見ると、かなり面倒だと感じました。およびcurl_multiは、CPUが高すぎる、Webページがハングするなどの原因となる可能性があります。curl_initとcurl_multi_initを比較すると、マルチスレッドは必ずしも複数のタスクを同時に処理できるわけではありません。時間コストは必ずしも低いわけではありません。以下に、curl_multi を使用する手順を示します。
ステップ 1:curl_multi_init を呼び出す
ステップ 2: ループ内でcurl_multi_add_handle を呼び出す
このステップでは、curl_multi_add_handle の 2 番目のパラメータが、curl_init のサブハンドルであることに注意してください。ステップ 3: 引き続きcurl_multi_exec を呼び出します
ステップ 4: 必要に応じてループ内でcurl_multi_getcontentを呼び出し、結果を取得します
ステップ 5: 単語ハンドルごとにcurl_closeを呼び出します。
6. PHP strstr() 関数
strstr(string, search) は、別の文字列内で最初に出現する文字列を検索します。文字列の残りの部分 (一致する点から) を返します。検索した文字列が見つからない場合は false を返します。
検索が必要です。検索する文字列を指定します。引数が数値の場合、ASCII 数値に一致する文字を検索します。
参照: http://www.w3cschool.cn/func_string_strstr.html。したがって、2 番目のパラメータを指定するときに、数値を一致させる必要がある場合は、引用符を追加することをお勧めします。
7. 標準化の重要性について
長い間修復されていなかった私の家の近くの道路は、歩行者用通路、自動車専用車線、自動車専用車線に分割することで解決されました。柔軟性が高いと選択肢が多すぎて問題が多くなることがあります。これはプログラムにも当てはまります。ユーザー入力の柔軟性は良いように見えますが、実際には、バグが発生しないように初期段階で標準化してはいかがでしょうか。ソース 絶望的な状況の後に埋め合わせをするのではなく?標準化により、すべてのプロセスがシンプルかつ効率的になります。
8. HHVM
HHVM (HipHop Virtual Machine) は、PHP コードを高レベルのバイトコード (多くの場合、中間言語と呼ばれます) に変換します。これらのバイトコードは、実行時にジャストインタイム (JIT) コンパイラーによって x64 マシンコードに変換されます。
Zend と比較して、HHVM は効率が向上し、CPU 負荷が軽減され、平均ページ読み込み時間も短縮されたことがさまざまなデータで示されています。 HHVM は PHP の実行パフォーマンスを最適化するために存在します。php5 と比較すると、いくつかの利点があります。php7 を待ちましょう。
9. PHP ソース コード署名コレクター
新しい馴染みのないソース コードを学習するときは、コード構造を直感的に理解することが重要です。これは、各ソース ファイルから句読点を 1 行ずつ取得することによって要約できます。つまり、ファイル署名です。これは、コードの複雑さを評価するのに役立ちます。実際には、コード ファイル内の固定シンボルを抽出してファイルの構造を提示します。
参考: http://c2.com/doc/SignatureSurvey/
10. 協調フィルタリング推奨アルゴリズム
1. コンテンツベースの推奨アルゴリズムの前提は、ユーザーがアイテム a を好きであれば、ユーザーは a に似たアイテムも好きであるはずです。基本的な考え方は、コンテンツの属性を分割し、同じ属性を持つコンテンツを抽出して推奨することです。
2. 協調フィルタリング推奨アルゴリズムの前提は、ユーザー a とユーザー b が両方とも一連の同じアイテムを好む場合、a はユーザー b が好む他のアイテムも好む可能性が非常に高いということです。基本的なプロセスは、ユーザーが最初に各項目を評価してスコアを付けることです。異なるユーザーの評価間の類似性を計算することで、最近傍が見つかり、最近傍の評価に基づいて推奨が生成されます。
上記のアルゴリズムはすべて、コサイン類似度やピアソン類似度などの式を使用した行列モデリングを使用します。ご使用の際は2つを1つに組み合わせてご使用いただくことをお勧めします。

ホット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)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。
