我开始使用CGI编程,并且对从索引文件中调用CGI脚本的安全性方面提出了疑问。这是简单的CGI脚本。
#!/usr/bin/python
print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
print '<h2>Hello Word! This is my first CGI program</h2>'
print '</body>'
print '</html>'
以下是索引文件的样子:
<a href="http://localhost/cgi-bin/hello.py">HELLO</a>
请注意,我使用完整的网址http://localhost/cgi-bin/hello.py
我对CGI的本地Apache Web服务器配置是这样的:
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
此脚本目前按预期工作,这样当单击“Hello”链接时,将显示CGI脚本的输出。我有两个与此相关的问题:
这种调用CGI脚本的方法是否正确,因为这几乎是一个具有各种CGI脚本的站点,这些脚本运行不同的任务,并且很可能通过按钮或链接调用?
我不知道我是否以正确的方式提出这个问题,但有可能不显示目标网址吗?目前,localhost/whoisit/
显示超链接,点击名为“Hello”的链接会在地址栏中显示以下网址 - localhost/cgi-bin/hello.py
。
提前谢谢。
答案 0 :(得分:0)
a)是的,这是调用CGI脚本的正确方法。
b)要隐藏网址中的详细信息,您需要了解URL rewriting
。谷歌它,你会发现许多教程和网站,将教你这个。如果您提供原始URL,也有网站会生成URL重写代码。您可以根据服务器将该代码复制粘贴到相应的文件中(例如,.htaccess
用于apache服务器。)