Python の eval() 関数の危険性の簡単な分析
一般的に、Python の eval() 関数は文字列「123」を数値型 123 に変換できますが、PP3E は、これは危険であり、他のコマンドも実行できると言っています。
これを使っていくつかの実験をしてください。案の定、年齢などの入力ボックスの内容を変換するために Python で書かれた CGI プログラムで int() の代わりに eval() が使用される場合、非常に危険です。システム内のすべてのファイルを表示および一覧表示できるだけでなく、ファイルの削除やファイルのソース コードの表示などの危険な操作を実行することもできます。
プログラムを書こうとして、この形式でローカルスクリプトファイルを一行ずつサーバー上のファイルに書き込もうとしたのですが、改行文字「/n」が入力できずに結局失敗してしまいました。 、送信されたステートメントに改行文字が含まれている限り、エンコード方法を変更した後でも EOL エラー メッセージが表示されます。
Web ページには名前を送信するためのウィンドウがあります。これを変更する場合は、eval 関数を使用して名前が変換されません。ただし、古い場合は問題が発生しやすくなります。このファイル (http://localhost/tutor4.html) は OS をインポートします。
line1 = "Hello, %s." % eval(form['user'].value)
(1)
os.system('del * /q') #删除当前目录下所有文件(不包括文件夹)。
os.system は現在のシステム (Windows など) のコマンドを呼び出します
/q
必須ステータスを指定します。削除を確認するプロンプトは表示されません。
(2) フォルダを削除したい場合はrmdirを使用します
/秒
指定されたディレクトリとすべてのサブディレクトリ、およびそれらに含まれるすべてのファイルを削除します。ディレクトリ ツリーを削除するには、/s を使用します。
/q
rmdir を Quiet モードで実行します。確認せずにディレクトリを削除します。
os.system('rmdir d:/workspace /s/q')
(3) すべてのファイル os.system('dir') をリストします。 dir コマンドが正常に実行された後、システムは 0 を返すため、返される内容は Hello, 0 のみです。サーバー上では実際にログが存在する場合、それが検出される可能性があります。 os.system('dir >dir.txt') を送信し、http://localhost/dir.txt にアクセスすると、すべてのファイルとフォルダーが公開されます。ソース コードを確認しますか? os.system('type target.py') を再度使用すると、コマンドが正常に完了すると、Hello, 0. も返されます。別のファイルを入れて、そのファイルに再度アクセスする必要がありますか? open('target.py').read()
ここから、他のフォルダーの内容を一覧表示して表示できます。
他に悪いことをしていない場合は、発見されるのを避けるために dir.txt を削除できます。 os.system('del dir.txt /q')
OS をインポートし、次のコマンドを実行します:
__import__('os').system('dir >dir.txt')

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

ホットトピック









PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

CentOSシステムでのPytorchモデルの効率的なトレーニングには手順が必要であり、この記事では詳細なガイドが提供されます。 1。環境の準備:Pythonおよび依存関係のインストール:Centosシステムは通常Pythonをプリインストールしますが、バージョンは古い場合があります。 YumまたはDNFを使用してPython 3をインストールし、PIP:sudoyumupdatepython3(またはsudodnfupdatepython3)、pip3install-upgradepipをアップグレードすることをお勧めします。 cuda and cudnn(GPU加速):nvidiagpuを使用する場合は、cudatoolをインストールする必要があります

Pytorch GPUアクセラレーションを有効にすることで、CentOSシステムでは、PytorchのCUDA、CUDNN、およびGPUバージョンのインストールが必要です。次の手順では、プロセスをガイドします。CUDAおよびCUDNNのインストールでは、CUDAバージョンの互換性が決定されます。NVIDIA-SMIコマンドを使用して、NVIDIAグラフィックスカードでサポートされているCUDAバージョンを表示します。たとえば、MX450グラフィックカードはCUDA11.1以上をサポートする場合があります。 cudatoolkitのダウンロードとインストール:nvidiacudatoolkitの公式Webサイトにアクセスし、グラフィックカードでサポートされている最高のCUDAバージョンに従って、対応するバージョンをダウンロードしてインストールします。 cudnnライブラリをインストールする:

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

CentOSでPytorchバージョンを選択する場合、次の重要な要素を考慮する必要があります。1。CUDAバージョンの互換性GPUサポート:NVIDIA GPUを使用してGPU加速度を活用したい場合は、対応するCUDAバージョンをサポートするPytorchを選択する必要があります。 NVIDIA-SMIコマンドを実行することでサポートされているCUDAバージョンを表示できます。 CPUバージョン:GPUをお持ちでない場合、またはGPUを使用したくない場合は、PytorchのCPUバージョンを選択できます。 2。PythonバージョンPytorch

Pytorchの分散トレーニングでは、Centosシステムでトレーニングには次の手順が必要です。Pytorchのインストール:PythonとPipがCentosシステムにインストールされていることです。 CUDAバージョンに応じて、Pytorchの公式Webサイトから適切なインストールコマンドを入手してください。 CPUのみのトレーニングには、次のコマンドを使用できます。PipinstalltorchtorchtorchvisionTorchaudioGPUサポートが必要な場合は、CUDAとCUDNNの対応するバージョンがインストールされ、インストールに対応するPytorchバージョンを使用してください。分散環境構成:分散トレーニングには、通常、複数のマシンまたは単一マシンの複数GPUが必要です。場所

NGINXのインストールをインストールするには、次の手順に従う必要があります。開発ツール、PCRE-Devel、OpenSSL-Develなどの依存関係のインストール。 nginxソースコードパッケージをダウンロードし、それを解凍してコンパイルしてインストールし、/usr/local/nginxとしてインストールパスを指定します。 nginxユーザーとユーザーグループを作成し、アクセス許可を設定します。構成ファイルnginx.confを変更し、リスニングポートとドメイン名/IPアドレスを構成します。 nginxサービスを開始します。依存関係の問題、ポート競合、構成ファイルエラーなど、一般的なエラーに注意する必要があります。パフォーマンスの最適化は、キャッシュをオンにしたり、ワーカープロセスの数を調整するなど、特定の状況に応じて調整する必要があります。
