我有一个文件django_migrations
,可以输出图像。
我这样引用它:
showcaptcha.php
工作正常,因此<img src='/security/showcaptcha.php'>
中的代码没有问题。
但是,出于安全原因,现在我将该php文件移到了doc根目录之外。将php文件放在doc根目录之外是一种很好的做法,因为这会使黑客更难访问任何源代码。
但是现在,我应该在img的src中放什么呢?
showcaptcha.php
或
<img src='???showcaptcha.php'>
答案 0 :(得分:2)
将真实代码放入PHP include路径(位于文档根目录之外)的目录中,并在安全性目录中保留存根,该存根仅做require('showcaptcha.php');
。闲逛的人只会知道该文件在某个地方存在,但是如果它们在文档根目录中,则将无法看到或找到它。
答案 1 :(得分:1)
我认为您正在使用public
文件夹(或其他名称)放置公用文件,对吗?像这样:
- src/
- public/
- index.php
- .htaccess
在这种情况下,您将无法使用../showcaptcha.php
,则需要将其放在根目录.htaccess
中。如果根.htaccess
将用户发送到public
文件夹,那么您需要创建一个新规则,将url
指向showcaptcha文件。
像这样:
...
# access the `images/captcha.jpg` to get the result
RewriteRule ^images/captcha.jpg$ ./path/to/showcaptcha.php
# send all urls that not is a folder or a directory to public/index.php, then init the magic with friendly url in this file
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule .$ public/index.php