Skip to content

Commit

Permalink
add login lock
Browse files Browse the repository at this point in the history
  • Loading branch information
linh0804 committed May 4, 2024
1 parent 319573e commit 2d0f5c6
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 21 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ tmp/!.htaccess
config.inc.php
database.inc.php
bookmark.json
login_fail.lock

composer.phar
composer.lock
Expand Down
74 changes: 53 additions & 21 deletions login.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,41 @@

const ACCESS = true;
const LOGIN = true;
const LOGIN_LOCK = 'login_fail.lock';
const LOGIN_MAX = 5;

include_once 'function.php';
require 'function.php';

if (IS_LOGIN) {
goURL('index.php');
}

$title = 'Đăng nhập';
function getLoginFail() {
return (int) @file_get_contents(LOGIN_LOCK);
}
function increaseLoginFail() {
file_put_contents(LOGIN_LOCK, getLoginFail() + 1);
}
function removeLoginFail() {
@unlink(LOGIN_LOCK);
}
function ableLogin() {
return getLoginFail() < LOGIN_MAX;
}

$title = 'Đăng nhập';
$notice = null;

if (!ableLogin()) {
require 'header.php';
echo '<div class="title">' . $title . '</div>';
echo '<div class="notice_failure">
Khoá đăng nhập, vào thư mục manager xoá file "' . LOGIN_LOCK . '" để mở khoá!
</div>';
require 'footer.php';
exit;
}

if (isset($_POST['submit'])) {
$notice = '<div class="notice_failure">';
$username = addslashes($_POST['username']);
Expand All @@ -23,8 +48,13 @@
strtolower($username) != strtolower($configs['username'])
|| getPasswordEncode($password) != $configs['password']
) {
$notice .= 'Sai tài khoản hoặc mật khẩu';
$notice .= 'Sai tài khoản hoặc mật khẩu.';

// khoá đăng nhập sau 5 lần
increaseLoginFail();
$notice .= ' Bạn còn ' . (LOGIN_MAX - getLoginFail()) . ' lần thử!';
} else {
removeLoginFail();
setcookie(FM_COOKIE_NAME, getPasswordEncode($password), time() + 3600 * 24 * 365);

goURL('index.php');
Expand All @@ -33,7 +63,7 @@
$notice .= '</div>';
}

include_once 'header.php';
require 'header.php';

if (IS_INSTALL_ROOT_DIRECTORY) {
echo '<div class="title">Lỗi File Manager</div>
Expand All @@ -43,33 +73,35 @@
echo '<div class="title">' . $title . '</div>';
echo $notice;

if (IS_CONFIG_UPDATE || IS_CONFIG_ERROR)
if (IS_CONFIG_UPDATE || IS_CONFIG_ERROR) {
@unlink(PATH_CONFIG);
}

if (IS_CONFIG_UPDATE)
if (IS_CONFIG_UPDATE) {
echo '<div class="notice_info">Cấu hình cập nhật sẽ đưa về mặc định</div>';
elseif (IS_CONFIG_ERROR)
} elseif (IS_CONFIG_ERROR) {
echo '<div class="notice_failure">Cấu hình bị lỗi sẽ đưa về mặc định</div>';
elseif (!is_file(PATH_CONFIG))
} elseif (!is_file(PATH_CONFIG)) {
echo '<div class="notice_info">Cấu hình không tồn tại nó sẽ được tạo</div>';
}


if (!is_file(PATH_CONFIG)) {
if (createConfig())
if (createConfig()) {
echo '<div class="notice_info">Tài khoản: <strong>' . LOGIN_USERNAME_DEFAULT . '</strong>, Mật khẩu: <strong>' . LOGIN_PASSWORD_DEFAULT . '</strong></div>';
else
} else {
echo '<div class="notice_failure">Tạo cấu hình thất bại, hãy thử lại</div>';
}
}

echo '<div class="list">
<form action="login.php" method="post">
<span class="bull">&bull; </span>Tên đăng nhập:<br/>
<input type="text" name="username" value="" size="18"/><br/>
<span class="bull">&bull; </span>Mật khẩu:<br/>
<input type="password" name="password" value="" size="18"/><br/>
<input type="submit" name="submit" value="Đăng nhập"/>
</form>
</div>';

include_once 'footer.php';

<form action="login.php" method="post">
<span class="bull">&bull; </span>Tên đăng nhập:<br/>
<input type="text" name="username" value="" size="18"/><br/>
<span class="bull">&bull; </span>Mật khẩu:<br/>
<input type="password" name="password" value="" size="18"/><br/>
<input type="submit" name="submit" value="Đăng nhập"/>
</form>
</div>';

require 'footer.php';

0 comments on commit 2d0f5c6

Please sign in to comment.