网站是什么?
在本节中,我们将了解网站的真正含义。网站只是安装在设备或计算机上的应用程序。网站有两个主要应用程序,即Web服务器(例如,Apache)和数据库(例如,MySQL)。
- Web服务器用于理解和执行Web应用程序。Web应用程序可以用Java,Python,PHP或任何其他编程语言编写。唯一的限制是Web服务器需要能够理解和执行Web应用程序。
- 数据库包含Web应用程序使用的数据。所有这些都存储在称为服务器的计算机上。服务器连接到互联网并具有IP地址,任何人都可以访问或ping它。
Web应用程序由目标或安装在服务器上的Web服务器执行。因此,无论何时运行Web应用程序或请求页面,它实际上都是在Web服务器上执行而不是在客户端的计算机上执行。一旦在Web服务器上执行,Web服务器就会发送一个HTML页面,该页面已准备好读取到目标客户端或人员,如下图所示:
假设我们正在使用计算机或手机访问google.com。在浏览器网址中,如果我们输入google.com,则会使用DNS服务器将其转换为IP地址。DNS是将每个名称,.com,.edu或任何具有名称或域名的网站转换为其相关IP地址的服务器。如果我们请求google.com,则请求会转到DNS服务器,并将google.com转换为存储Google的IP。然后,DNS服务器将转到Google的IP地址,并使用我们所说的所有应用程序执行我们想要的页面,然后Google服务器只是给我们一个准备好的HTML页面。
现在程序在服务器上执行,我们只得到一个HTML,这是一个标记语言作为程序的结果。这非常重要,因为在将来,如果我们想要在Web服务器上执行任何操作,例如shell,那么我们需要使用Web服务器理解的语言(例如PHP)发送它,并且一旦我们在服务器内部执行它,它将在目标计算机上执行。
这意味着,无论访问页面的人是谁,我们要发送的Web shell(如果它是用Java或服务器理解的语言编写的)都将在服务器上执行,而不是在我们的计算机上执行。因此,它将使我们能够访问服务器而不是访问该服务器的人。
另一方面,一些网站使用JavaScript,这是一种客户端语言。如果我们能够找到允许我们运行JavaScript代码的网站,那么代码将由客户端执行。即使代码可能被注入Web服务器,它也将在客户端执行,它将允许我们在客户端计算机上而不是在服务器上执行攻击。因此,区分客户端语言和服务器端语言非常重要。