Python 联机运行ASP脚本时的安全权限

Python 联机运行ASP脚本时的安全权限,python,windows,iis,dll,asp-classic,Python,Windows,Iis,Dll,Asp Classic,我编写了一个python类,它通过c dll与第三方销售数据库交互 我现在计划使用ASP脚本中的PythonScript来使用这个python类。这个ASP脚本是我网站的一部分。在过去,我使用了一点PythonScript作为VBScript的替代品 在安全权限方面,我的网站的客户端能够使用python类吗?我记得以前有一次,出于安全原因,我不能允许客户端计划windows任务 如何安全地设置安全权限?我不必在IIS上设置Python,但我在 验证是否已设置.py文件的应用程序映射。为此,请执行

我编写了一个python类,它通过c dll与第三方销售数据库交互

我现在计划使用ASP脚本中的PythonScript来使用这个python类。这个ASP脚本是我网站的一部分。在过去,我使用了一点PythonScript作为VBScript的替代品

在安全权限方面,我的网站的客户端能够使用python类吗?我记得以前有一次,出于安全原因,我不能允许客户端计划windows任务


如何安全地设置安全权限?

我不必在IIS上设置Python,但我在

验证是否已设置.py文件的应用程序映射。为此,请执行以下步骤:

  • 在ISM中的Internet Information Server下,右键单击计算机名,然后>单击属性。
    • 从主属性下拉列表中,单击WWW服务,然后单击编辑
    • 单击主目录选项卡,然后单击配置
    • 要添加应用程序映射,请单击“添加”,然后使用以下信息创建新映射(替换计算机上的正确路径):
    • 可执行文件:“C:\Python20\python.exe%s%s”(可执行文件后面的两个“%s”对于基于控制台的脚本解释器是必需的,但对于基于Internet服务器API[ISAPI]的脚本解释器则不是必需的)
    • 扩展名:.py
    • 脚本引擎:选中
    • 检查文件是否存在:选中(出于安全考虑)单击“确定”

验证中的文件和目录权限设置是否正确 计算机的访问控制列表(ACL)。对于匿名访问 IUSR_u[computername]和IWAM_[computername]用户帐户必须在 最小“读取”权限(RX)。使用其他类型的密码时 身份验证时,所需的权限可能会有所不同


web应用程序总是让用户在服务器上运行代码,通常从数据生成一些HTML。该进程非常封闭,不需要服务器权限。该代码是否为ASP和/或Python并不是真正的问题,只是您将使用C代码,即:

  • 较少测试
  • 容易发生缓冲区溢出
如果您使用的是自定义构建的COM对象,那么这个答案也适用

除了可能的技术困难(如正确使用
PYTHONPATH
),您还必须查看。简而言之,在数据变得可信之前,您必须对从客户机发送给您的数据进行一些处理。只有这样,您才能将其发送到您的资产(数据)中

这项工作的具体内容取决于您的应用程序,但可能遵循以下原则:

  • 对用户进行身份验证
  • 验证输入
  • 使用安全的API和编码实践
  • 艰苦的工作通常处于第二阶段。例如,调度应用程序可以只调度特定的低影响任务运行一次,而不是盲目地调度用户提交的任务

    Python脚本应用程序也是如此。但是你也应该考虑第3阶段。C代码没有内置的保护措施,因此很容易受到溢出攻击

    为了更清楚,请在应用程序的高级关系图上标识信任边界。下面是一个尝试:

    应用程序的每个部分都有一个角色,没有某种形式的验证,您无法跨越信任边界

    例如:

  • 对用户进行身份验证,最好使用内置机制,以便从健壮的代码中获益
  • Python脚本代码验证输入。这是一个良好的开端,尽管仍处于测试阶段。同样,这是困难的部分
  • (如果可能)检查DLL代码,并用安全的对应程序替换所有字符串操作例程。这可能是一项比您最初的项目更大的任务
  • 遗憾的是,基础设施无法帮助您。即使这是一个intranet应用程序,并且用户事先都很熟悉,它也只会在认证阶段提供帮助

    最后,请记住,旧的学校安全措施仍然适用:

    • 网络安全(防火墙、反向代理等)
    • 只运行您需要的服务
    • 应用修补程序和监视日志
    • 将您的应用程序隔离在一个工作进程中,只需很少的权限(如本地服务)
    • 使用低权限帐户访问数据库