Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 months ago.
The community reviewed whether to reopen this question 5 months ago and left it closed:
Original close reason(s) were not resolved
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(10)
这有点晚了,但我想回复以防其他人访问此页面并发现最高回复有点偏离。我对系统做了一点改进。请注意,它仍然不是非常安全,但它是一个改进。
首先准备您的密码盐文件:
hash_generate.php:
获取输出
$userhash
和$passhash
并将它们放入两个文本文件中:user.php。分别为 txt 和 pass.txt。其他人建议将这些文本文件放在 public_html 之上,这是一个好主意,但我只是使用 .htaccess 并将它们存储在名为“stuff”的文件夹中.htaccess
现在没有人可以查看哈希值。接下来是你的index.php:
index.php:
This is a bit late but I wanted to reply in case anyone else came upon this page and found that the highest reply was a bit off. I have improved upon the system just a tad bit. Note, it is still not amazingly secure but it is an improvement.
First prepare your password salts file:
hash_generate.php:
Take your output
$userhash
and$passhash
and put them in two text files: user.txt and pass.txt, respectively. Others have suggested putting these text files away above public_html, this is a good idea but I just used .htaccess and stored them in a folder called "stuff".htaccess
Now no one can peek into the hash. Next up is your index.php:
index.php:
这是一个非常简单的方法。创建两个文件:
protect-this.php
login.php:
然后在您想要的文件顶部添加 protect-this.php保护:
结果示例:
填写正确的密码后,用户将被带到index.php。密码保存 30 天。
PS:重点不在于安全,而在于实用。黑客可以暴力破解这一点。用它来阻止普通用户。不要用它来保护敏感信息。
Here's a very simple way. Create two files:
protect-this.php
login.php:
Then require protect-this.php on the TOP of the files you want to protect:
Example result:
After filling the correct password, user is taken to index.php. The password is stored for 30 days.
PS: It's not focused to be secure, but to be pratical. A hacker can brute-force this. Use it to keep normal users away. Don't use it to protect sensitive information.
以及页面上的登录表单...
(在同一页面上,上面^发布的代码的正下方)
And the login form on the page...
(On the same page, right below the above^ posted code)
我会简单地查找
$_GET
变量,如果不正确则重定向用户。现在,如果此页面位于:
http://example.com/secrets/files.php
您现在可以通过以下方式访问它:
http://example.com/secrets/ files.php?pass=my-secret-password
请记住,这不是最有效或最安全的方法,但它仍然是一种简单快捷的方法。 (另外,我知道我的答案已经过时,但其他人看到这个问题可能会发现它很有价值)I would simply look for a
$_GET
variable and redirect the user if it's not correct.Now, if this page is located at say:
http://example.com/secrets/files.php
You can now access it with:
http://example.com/secrets/files.php?pass=my-secret-password
Keep in mind that this isn't the most efficient or secure way, but nonetheless it is a easy and fast way. (Also, I know my answer is outdated but someone else looking at this question may find it valuable)如果你愿意,你也可以做到只有某些 ip 地址可以登录..:) 使用 lighttpd 真的很容易
更新:我很快就会发布一些示例,所以不要因为没有示例而投票否决,我只需要获取一些示例这个答案。
如果您想使用会话,以下是最好的方法:
此方法不包含上面的示例,但您对此方法感兴趣。其他方法示例仍然存在,我没有足够的时间来获取 apache 或 lighttpd 设置以及 php 标头身份验证: http://php.net/manual/en/features.http-auth.php 就可以了。
If you want you can also make it so only certain ip addresses can login.. :) really easy with lighttpd
Update: I will post some examples soon, so don't vote down for no examples, i just need to get some down for this answer.
If you want to use sessions the following is the best way to go:
This method does not contain the examples for above but you seamed interested in this method. The other method examples are still to come, I have not got enough time to get it for apache or lighttpd settings and the php header auth: http://php.net/manual/en/features.http-auth.php Will do.
保护文件的简单方法不需要单独的登录页面 - 只需将其添加到页面顶部:
将 Secretuser 和 Secretpassword 更改为您的用户/密码。
A simple way to protect a file with no requirement for a separate login page - just add this to the top of the page:
Change secretuser and secretpassword to your user/password.
基本上,我在这里所做的就是在一个 php 文件中创建一个页面,当您输入密码(如果正确)时,它将隐藏密码屏幕并向前显示受保护的内容。然后是 css,这是一个至关重要的部分,因为它创建了隐藏和显示页面不同部分的类。
Basically what I did here is make a page all in one php file where when you enter the password if its right it will hide the password screen and bring the stuff that protected forward. and then heres the css which is a crucial part because it makes the classes that hide and show the different parts of the page.
这会在登录后将密码存储在历史记录中!
您可以在 php 代码中指定密码,以便只有拥有秘密 URL 的用户才能访问:
在您的登录保护文件中:
This stores the password in history after login!
You can specify a password in your php code so only users that have the secret url can access:
in your login-protected file:
即使在 2023 年,我发现自己也在编写用于调试日志记录和其他测试任务的小型 PHP 脚本,我宁愿保留某种保护,所以这里有一个登录脚本,可以让您完成所有这些工作。它位于 GitHub 上 https://github.com/Mugane/simple-php-auth
Even in 2023, I find myself writing small PHP scripts for debug logging and other testing tasks that I'd rather keep behind some sort of protection, so here's a login script that will let you do all that. It's on GitHub at https://github.com/Mugane/simple-php-auth
这并不是最强大的密码保护,因此请不要使用它来保护信用卡号或非常重要的东西。
只需将以下所有代码放入名为(secure.php)的文件中,更改用户并从“admin”传递到您想要的任何内容。然后在包含(“secure.html”)的那些行下,只需将其替换为您希望他们能够看到的文件名。
他们将通过 [YouDomain.com/secure.php] 访问此页面,然后 PHP 脚本将在内部包含您想要受密码保护的文件,这样他们就不会知道该文件的名称,并且以后无法直接访问它绕过密码提示。
如果您想添加进一步的保护级别,我建议您将 (secure.html) 文件放在站点根文件夹 [/public_html] 之外,并将其放置在与该目录相同的级别,以便它不在目录内。然后,在包含该文件的 PHP 脚本中,只需使用 (“../secure.html”)。 (../) 意味着返回一个目录来查找该文件。通过这种方式,某人访问 (secure.html) 页面上的内容的唯一方法是通过 (secure.php) 脚本。
Not exactly the most robust password protection here, so please don't use this to protect credit card numbers or something very important.
Simply drop all of the following code into a file called (secure.php), change the user and pass from "admin" to whatever you want. Then right under those lines where it says include("secure.html"), simply replace that with the filename you want them to be able to see.
They will access this page at [YouDomain.com/secure.php] and then the PHP script will internally include the file you want password protected so they won't know the name of that file, and can't later just access it directly bypassing the password prompt.
If you would like to add a further level of protection, I would recommend you take your (secure.html) file outside of your site's root folder [/public_html], and place it on the same level as that directory, so that it is not inside the directory. Then in the PHP script where you are including the file simply use ("../secure.html"). That (../) means go back a directory to find the file. Doing it this way, the only way someone can access the content that's on the (secure.html) page is through the (secure.php) script.