2

私は、ac dll を介してサードパーティの販売データベースとやり取りする python クラスを作成しました。

ASPスクリプトからPythonScriptを使用して、このpythonクラスを使用する予定です。この ASP スクリプトは、私の Web サイトの一部です。私は以前、VBScript の代わりに PythonScript を少し使用したことがあります。

セキュリティ権限に関して、私の Web サイトのクライアントは Python クラスを使用できますか? 以前、セキュリティ上の理由から、クライアントが Windows タスクをスケジュールすることを許可できなかったことを覚えています。

セキュリティ権限を安全に設定するにはどうすればよいですか?

4

2 に答える 2

3

Webアプリケーションは常にユーザーにサーバー上でコードを実行させ、通常はデータからHTMLを生成します。そのプロセスは非常にロックダウンされており、サーバーに対する権限は必要ありません。そのコードがASPであるかPythonであるか、あるいはその両方であるかどうかは、実際には問題ではありません。ただし、次のCコードを使用する場合を除きます。

  • あまりテストされていない
  • バッファオーバーフローが発生しやすい

この回答は、カスタムビルドのCOMオブジェクトを使用している場合にも当てはまります。

考えられる技術的な問題(適切な処理など)は別として、信頼の境界PYTHONPATHを確認する必要があります。つまり、信頼できるものになる前に、クライアントから送信されたデータに対して何らかの作業を行う必要があります。そうして初めて、アセット(データ)に送信することができます。

その動作はアプリケーションによって異なりますが、おそらく次のようになります。

  1. ユーザーを認証する
  2. 入力を検証します
  3. 安全なAPIとコーディング手法を使用する

多くの場合、ハードワークはステージ2にあります。たとえば、スケジューリングアプリケーションでは、ユーザーが送信したタスクを盲目的にスケジュールするのではなく、特定の影響の少ないタスクを1回だけ実行するようにスケジュールできます。

Pythonスクリプトアプリケーションについても同じことが言えます。ただし、ステージ3も検討する必要があります。Cコードにはセーフガードが組み込まれていないため、オーバーフロー攻撃が発生しやすくなります。

より明確にするために、アプリケーションの高レベルの図で信頼境界を特定します。これが1つの試みです:

架空の信頼境界

アプリケーションの各部分には役割があり、何らかの形式の検証なしに信頼の境界を越えることはできません。

例えば ​​:

  1. 堅牢なコードを活用できるように、できれば組み込みのメカニズムを使用してユーザーを認証します
  2. Pythonスクリプトコードは入力を検証します。Python ESAPIライブラリはまだベータ版ですが、OWASP入力検証のチートシートは良いスタートです。繰り返しますが、これは難しい部分です。
  3. (可能であれば)DLLコードを確認し、すべての文字列操作ルーチンを安全な対応するルーチンに置き換えます。ただし、これは元のプロジェクトよりも大きな作業になる可能性があります。

悲しいことに、インフラストラクチャは役に立ちません。これがイントラネットアプリケーションであったとしても、ユーザーが事前によく知られている場合は、ほとんどの場合、認証段階でのみ役立ちます。

最後に、古い学校のセキュリティ対策が引き続き適用されることを忘れないでください。

  • ネットワークセキュリティ(ファイアウォール、リバースプロキシなど)
  • 必要なサービスのみを実行する
  • パッチを適用してログを監視する
  • 特権がほとんどないワーカープロセスでアプリケーションを分離する(ローカルサービスなど)
  • データベースアクセスに低特権アカウントを使用する
于 2013-02-27T05:30:23.947 に答える
0

IIS で Python をセットアップする必要はありませんでしたが、MSDNで見つけました

.py ファイルのアプリケーション マッピングが設定されていることを確認します。これを行うには、次の手順を実行します。

  • ISM の Internet Information Server で、コンピュータ名を右クリックし、[プロパティ] をクリックします。
    • [マスター プロパティ] ドロップダウン リストから、[WWW サービス] をクリックし、[編集] をクリックします。
    • [ホーム ディレクトリ] タブをクリックし、[構成] をクリックします。
    • アプリケーション マッピングを追加するには、[追加] をクリックし、次の情報を使用して新しいマッピングを作成します (コンピューター上の正しいパスに置き換えます)。
      1. 実行可能ファイル: "C:\Python20\python.exe %s %s" (実行可能ファイルの後の 2 つの "%s" は、コンソール ベースのスクリプト インタープリターに必要ですが、インターネット サーバー API [ISAPI] ベースのスクリプトには必要ありません)通訳者)。
      2. 拡張子: .py
      3. スクリプト エンジン: 選択済み。
      4. Check that File Exists: 選択済み (セキュリティのため) [OK] をクリックします。

...

コンピュータのアクセス制御リスト (ACL) で、ファイルとディレクトリのアクセス許可が正しく設定されていることを確認します。匿名アクセスの場合、IUSR_[コンピューター名] および IWAM_[コンピューター名] ユーザー アカウントには、少なくとも "読み取り" アクセス許可 (RX) が必要です。他のタイプのパスワード認証を使用する場合、必要な権限は異なる場合があります。

于 2013-02-26T15:28:40.873 に答える