📜  珀尔 | CGI 中的安全问题

📅  最后修改于: 2022-05-13 01:54:23.924000             🧑  作者: Mango

珀尔 | CGI 中的安全问题

在深入探讨 CGI 和 Perl 的安全问题之前,让我们先了解一下 Perl 是什么。 Perl 代表实用提取和报告语言。它由拉里沃尔于 1987 年建造。它是一种智能的面向对象语言,因为它也从 C 和 BASIC 中获取了一些有用的特性。这种编程语言曾经是 Web 编程的大师,因为它的功能与其他语言不同。 Web 编程语言使用CGI(通用网关接口)来动态分配网页。

对客户端的影响

一旦我们建立了一个网站,我们就想在网上发布它并向世界展示我们的成就,年轻人想把它放在他们的简历中,想向公司展示他们的能力。但是,互联网虽然给了我们曝光机会,但也让我们接触了黑客和臭名昭著的用户的网络世界。
当我们谈论 CGI 时,我们不能不谈论其他语言,如 C、C++、BASIC 等。C 不擅长字符串执行,许多 C 用户为输入定义了一个大字符串,但事实证明这很危险,因为它是空的空格(溢出)可能导致未经授权的访问。
Perl 在一个步骤中执行和编译,这使得它可以输入受托用户输入的危险数据。更好地使用 C 和 BASIC 中的脚本而不是 CGI 更安全。与用户的交互是 CGI 最好和最差的特性。一些用户违反了脚本的规则,而另一些用户可能是不受欢迎的用户,他们使用您的网页只是为了破解它。
我们应该警惕谁在使用我们的页面,并跟踪使用它的每个用户。

某些形式的攻击

很有可能当您使用 CGI 时,其他用户正在使用其他东西并正在处理它。这会导致我们受到内部攻击,其他用户也可以窥探并表现出对您的脚本的不必要和不受欢迎的关注,这可能导致安全性被利用。 Setuid是 CGI 的一项功能,它允许拥有脚本的用户授予运行程序的权限,而不是构建程序的用户。这可能会导致问题,这会使整个过程变得乏味,因为它要求所有者给予许可,而且所有者可能不知道他的开发人员正在进行一些更改。
有人也可以通过运行他编写的外部程序而不是您在 CGI 中指定的程序来欺骗我们。同样,用户输入会导致大多数安全问题。

安全 CGI 脚本编写指南

既然我们已经讨论了 CGI 中的安全漏洞,我们还应该了解有助于我们制作安全 CGI 脚本并保持安全性的良好实践,尽管有许多用户将使用该站点。
首先是基本的事情,使您的整个计算机/系统安全将使您的网站几乎安全,因此请确保您正在使用的计算机是安全的并且安装了良好的防病毒软件。
在创建文件时,您应该记下您授予它的权限。有权访问本地目录的用户可能会不当利用不需要的权限。
互联网上提供的预编译程序是一个很大的问题。他们被发现充满了隐藏的病毒,并且一旦它们在您的计算机上运行,它们也可能可以访问您的文件。
我们应该检查并理解从互联网上获取的所有代码/程序,因为它们可能包含从安全漏洞到特洛伊木马的任何内容。这些有缺陷的程序经常利用 CGI 脚本中的业余爱好者和初学者。

因此,如上所述,CGI 中安全问题的基础是用户输入。这些用户可以来自 Internet,也可以来自您自己的内部网络。因此,人们应该始终关注如何以及何时授予权限以及授予谁权限。