问题描述
您好,我已经使用laravel和护照开发了一个rest api。如何得知我的应用程序是否安全?我认为这些api是安全的,因为我使用了护照上的令牌,并且每次请求都必须发送令牌才能访问data.I之所以问这个问题,是因为我发现如果有人键入url可以说myserver / env,看到包含所有数据的env文件(数据库连接)。我从htaccess阻止了它,但是我在这里问是否需要做更多的工作来保护它。谢谢您的时间!
解决方法
首先,您不应授予所有人对.env文件的读取权限。您应该限制访问,以便只有服务器才能执行该文件0111
。
第二,在您的.htaccess
中添加以下内容:
<Files .env>
Order allow,deny
Deny from all
</Files>
第三,如何通过URL访问文件?公用文件夹应该是映射目录。
供参考:How to secure .env file in laravel using file permission?
, Laravel有一个名为public
的文件夹,这是唯一需要指向您的虚拟主机的文件夹。其他文件夹不应是公用文件夹,这是将包括.env
文件在内的配置文件保密的方式。
Nginx配置文件的示例:
server {
listen 80;
server_name example.com;
root /var/www/example.com/my_laravel_app/public; # Here we pointed the host example.com to the laravel's public folder
index index.php;
...
有关部署Laravel应用的更多信息:
https://laravel.com/docs/7.x/deployment
这是Laracon EU关于保护Laravel应用安全的好演讲: