gpt4 book ai didi

python - 在线运行 ASP 脚本时的安全权限

转载 作者:可可西里 更新时间:2023-11-01 10:07:19 29 4
gpt4 key购买 nike

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

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

就安全权利而言,我网站的客户是否可以使用 python 类?我记得以前有一次,出于安全原因,我不允许客户安排 Windows 任务。

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

最佳答案

Web 应用程序总是让用户在服务器上运行代码,通常从数据生成一些 HTML。该过程非常锁定,不需要服务器上的任何权限。该代码是 ASP 还是 Python 并不是真正的问题,除了您将使用 C 代码:

  • 较少测试
  • 容易发生缓冲区溢出

如果您使用自定义构建的 COM 对象,此答案也适用。

除了可能存在的技术困难(例如正确设置 PYTHONPATH)之外,您还必须查看 Trust boundaries 。简而言之,在客户端发送给您的数据变得可信之前,您必须做一些工作。只有这样,您才能将其发送到您的 Assets (您的数据)。

具体是什么工作取决于您的应用程序,但可能会遵循以下原则:

  1. 验证用户
  2. 验证输入
  3. 使用安全的 API 和编码实践

困难的工作通常发生在第 2 阶段。例如,您的调度应用程序可以只调度特定的低影响任务只运行一次,而不是盲目地调度用户提交的任务。

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

为了更清楚地说明,请在应用程序的高级图表上确定您的信任边界。这是一个尝试:

Hypothetical trust boundaries

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

例如:

  1. 对用户进行身份验证,最好使用内置机制,这样您就可以从健壮的代码中获益
  2. 您的 Python 脚本代码验证输入。 OWASP input validation cheat sheet是一个好的开始,尽管 Python ESAPI library仍处于测试阶段。同样,这是困难的部分。
  3. (如果可能)检查您的 DLL 代码并将所有字符串操作例程替换为安全的对应例程。不过,这可能是一项比您最初的项目更大的任务。

可悲的是,基础设施无法帮助您。即使这是一个 Intranet 应用程序,提前知道用户,它也只能在身份验证阶段提供帮助。

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

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

关于python - 在线运行 ASP 脚本时的安全权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14478123/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com