php 安全有關(guān)問題
Jun 13, 2016 am 10:49 AM
php 安全問題
做web開發(fā),相信搭建都知道一些安全基本知識,”千萬不能相信客戶端數(shù)據(jù)“。而php又是一種弱類型語言。很多人在開發(fā)過程中忽略了類型轉(zhuǎn)換,參數(shù)過濾直接量成不可估量的后果。
不使用過濾函數(shù)可能出現(xiàn)以下情況:
數(shù)據(jù)庫被(sql)注入。直接可以導(dǎo)致你的系統(tǒng)崩潰,系統(tǒng)數(shù)據(jù)丟失,用戶信息丟失。網(wǎng)站被掛馬,遇到文件處理則可以將你的網(wǎng)站文件刪除。
另外值得一提的是很多人認(rèn)為開啟php安全模式就萬事大吉了。其實不然,很多注入者往往繞過正面,進(jìn)行側(cè)面進(jìn)攻。
使用?0×7e,0×27等(ASCII碼)字符串來充當(dāng)引號,而php又無法過濾。注入的一般方式都是在參數(shù)里面加入很多mysql?sql語法,去獲取敏感數(shù)據(jù)信息。
exp:
and(select1from(select?count(*),concat((select(select(select?concat(0x7e,0x27,phpcms_member.username,0x27,0x7e)from?phpcms_member?limit0,1))from?information_schema.tableslimit0,1),floor(rand(0)*2))x?from?information_schema.tablesgroupby?x)a)and1=1 |
mysql information_schema.tables 所有用戶都可見可查,能查出所有表結(jié)構(gòu)信息,數(shù)據(jù)庫信息。
php開源系統(tǒng)很多,很多開源系統(tǒng)大家知道數(shù)據(jù)結(jié)構(gòu),已級敏感信息表。(這里當(dāng)然也包括不法分子)
這里指的敏感信息:往往是一些用戶信息,管理端信息。現(xiàn)在md5的窮舉一直在進(jìn)行著。很多的md5加密之后的密碼仍然能被解密成明文。
很多系統(tǒng)都做了相應(yīng)的安全提升。
下面介紹以下常見手段:
使用過濾函數(shù),php filter 安全過濾函數(shù).md5( ?md5(‘用戶密碼’) . ‘私鑰’ ) 得出加密結(jié)果。常用的php開源系統(tǒng)后臺一定要修改目錄名。很多系統(tǒng)后臺直接使用admin作為后臺入口。不要將phpmyadmin等數(shù)據(jù)庫操作軟件安置在網(wǎng)站可見目錄。
等等。。之所以這樣是由于現(xiàn)在大量存在掃描工具去掃描這樣的管理端。
下面是驚心的一張圖
?
mysql 注入
?
mysql 注入
出處:?馬丁博客[http://www.blags.org/]
本文鏈接地址:?http://www.blags.org/php-security-issue/
?

ホットAIツール

Undress AI Tool
脫衣畫像を無料で

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

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

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

n 1クエリの問題を避け、関連するデータを事前にロードすることにより、データベースクエリの數(shù)を減らします。 2.必要なフィールドのみを選択して、メモリと帯域幅を保存するために完全なエンティティをロードしないようにします。 3. DoctrineのセカンダリキャッシュやRedis Cacheの高周波クエリ結(jié)果など、キャッシュ戦略を合理的に使用します。 4.エンティティのライフサイクルを最適化し、クリア()を定期的に呼び出してメモリを解放してメモリオーバーフローを防ぎます。 5.データベースインデックスが存在し、生成されたSQLステートメントを分析して、非効率的なクエリを避けます。 6.変更が不要なシナリオで自動変更追跡を無効にし、パフォーマンスを改善するためにアレイまたは軽量モードを使用します。 ORMを正しく使用するには、SQLモニタリング、キャッシュ、バッチ処理、適切な最適化を組み合わせて、開発効率を維持しながらアプリケーションのパフォーマンスを確保する必要があります。

柔軟なPHPマイクロサービスを構(gòu)築するには、RabbitMQを使用して非同期通信を?qū)g現(xiàn)する必要があります。 2。信頼性を確保するために、永続的なキュー、永続的なメッセージ、リリース確認(rèn)、手動ACKを構(gòu)成します。 3.指數(shù)バックオフ再試行、TTL、およびデッドレターキューセキュリティ処理の障害を使用します。 4.監(jiān)督などのツールを使用して、消費(fèi)者プロセスを保護(hù)し、ハートビートメカニズムを有効にしてサービスの健康を確保します。そして最終的に、システムが障害で継続的に動作する能力を?qū)g現(xiàn)します。

正しいPHP Basicイメージを使用し、安全で最適化されたDocker環(huán)境を構(gòu)成することが、生産を?qū)g現(xiàn)するための鍵です。 1.攻撃面を減らしてパフォーマンスを向上させるための基本畫像としてPHP:8.3-fpm-alpineを選択します。 2.カスタムPHP.iniを介して危険な機(jī)能を無効にし、エラーディスプレイをオフにし、OpCacheとJITを有効にしてセキュリティとパフォーマンスを強(qiáng)化します。 3. NGINXを逆プロキシとして使用して、機(jī)密ファイルへのアクセスを制限し、PHPリクエストをPHP-FPMに正しく転送します。 4.マルチステージ最適化畫像を使用して開発依存関係を削除し、非ルートユーザーを設(shè)定してコンテナを?qū)g行します。 5. CRONなどの複數(shù)のプロセスを管理するためのオプションの監(jiān)督。 6.展開前に機(jī)密情報漏れがないことを確認(rèn)します

settings.jsonファイルは、ユーザーレベルまたはワークスペースレベルのパスにあり、VSCODE設(shè)定のカスタマイズに使用されます。 1。ユーザーレベルのパス:WindowsはC:\ users \\ appdata \ roaming \ code \ user \ settings.json、macos is/users //settings.json、linux is /home/.config/code/user/settings.json; 2。Workspace-Level Path:.vscode/settings Project Root Directoryの設(shè)定

PHPのゴミ収集メカニズムは參照カウントに基づいていますが、周期的な円形のゴミコレクターによって円形の參照を処理する必要があります。 1。変數(shù)への參照がない場合、參照カウントはすぐにメモリを解放します。 2.參照參照により、メモリを自動的にリリースできなくなり、GCを検出およびクリーニングすることがGCに依存します。 3。GCは、「可能なルート」ZVALがしきい値に到達(dá)するか、GC_COLLECT_CYCLES()を手動で呼び出すとトリガーされます。 4.長期実行PHPアプリケーションは、メモリの漏れを避けるために、gc_status()を監(jiān)視し、gc_collect_cycles()を呼び出す必要があります。 5.ベストプラクティスには、gc_disable()を使用してパフォーマンスキー領(lǐng)域を最適化し、ormのclear()メソッドを介して繰り返しのオブジェクトを最適化する回路參照の回避が含まれます。

BREFにより、PHP開発者は、サーバーを管理せずにスケーラブルで費(fèi)用対効果の高いアプリケーションを構(gòu)築できます。 1.Brefは、最適化されたPHPランタイムレイヤーを提供し、PHP8.3およびその他のバージョンをサポートし、LaravelやSymfonyなどのフレームワークとシームレスに統(tǒng)合することにより、PHPをAwslambdaにもたらします。 2。展開手順には、次のものが含まれます。Composerを使用してBREFのインストール、httpエンドポイントや職人コマンドなどの関數(shù)とイベントを定義するためにserverless.ymlの構(gòu)成。 3. serverlessdeployコマンドを?qū)g行して、展開を完了し、Apigatewayを自動的に構(gòu)成し、アクセスURLを生成します。 4。Lambdaの制限については、Brefは解決策を提供します。

readonlypropertiesinphp8.2canonlybeassignedonedonedontheconstructoraturatiddeclaration andcannotBemodifiedifiedifiedifiedifiedifiedifiedifiadtivedabilityattthelanguagelele.2.

usearestapitobridgephpandmlmodelsbyrunningthemodelinpythonviaflaskorapiandapiandcallingtfromphpusingcurlorguzzle.2.runpythosscriptsdirectlyfrompurspusingec()orshell_exec()
