Это код для входа в мою страницу
<?php
//simple PHP login script using Session
//start the session * this is important
session_start();
//login script
if(isset($_REQUEST['ch']) && $_REQUEST['ch'] == 'login'){
//give your login credentials here
if($_REQUEST['uname'] == 'my_name' && $_REQUEST['pass'] == 'my_password')
$_SESSION['login_user'] = 1;
else
$_SESSION['login_msg'] = 1;
}
//get the page name where to redirect
if(isset($_REQUEST['pagename']))
$pagename = $_REQUEST['pagename'];
//logout script
if(isset($_REQUEST['ch']) && $_REQUEST['ch'] == 'logout'){
unset($_SESSION['login_user']);
header('Location:login.php');
}
if(isset($_SESSION['login_user'])){
if(isset($_REQUEST['pagename']))
header('Location:'.$pagename.'.php');
else
header('Location:admin.php');
}else{
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Website</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" type="text/css" href="styles.css" media="all" />
</head>
<body>
<form name="login_form" method="post" action="">
<h2 align="center"><strong>Admin Login</strong></h2>
<input type="text" name="uname" id="uname" placeholder="Username">
<input type="password" name="pass" id="pass" placeholder="Password">
<td colspan="2" align="center">
<p style="color:red;">
<?php
//display the error msg if the login credentials are wrong!
if(isset($_SESSION['login_msg'])){
echo 'Wrong username and password !';
unset($_SESSION['login_msg']);
}
?>
</p>
<div align="center" colspan="2"><input type="submit" value="Login"></div>
</tr>
<input type="hidden" name="ch" value="login">
</form>
</body>
</html>
Я скопировал это с веб-сайта, поэтому я не уверен, насколько он безопасен. И я тоже не очень хорош с php.
безопасно ли это использовать или его легко взломать? если это не может кто-нибудь сказать мне, какая самая лучшая система входа в систему MySQL?
$ _REQUEST, по умолчанию, содержит содержимое $ _GET, $ _POST и $ _COOKIE.
Но это только дефолт, который зависит от variables_order; и не уверен, что вы хотите работать с файлами cookie.
Если бы мне пришлось выбирать, я бы, вероятно, не использовал $ _REQUEST, и я бы выбрал $ _GET или $ _POST - в зависимости от того, что должно делать мое приложение (то есть того или другого, но не обоих): вообще говоря:
Вы должны использовать $ _GET, когда кто-то запрашивает данные из вашего приложения. И вы должны использовать $ _POST, когда кто-то нажимает (вставляя или обновляя или удаляя) данные в ваше приложение. В любом случае, не будет большой разницы в производительности: разница будет незначительной, по сравнению с остальной частью вашего скрипта.
Кроме того, вам может потребоваться проверить XSS и CSRF. Однако это действительно зависит от требований приложения. Я ненавижу быть тупым, но IMHO это не похоже на безопасный или практичный блок ввода кода. Кроме того, могу ли я спросить, почему вы не планируете использовать БД? Использование сохраненных текстовых паролей не очень безопасно.
Приведенное ниже применяется, если вы планируете использовать БД. Ваш код не проверяет db для нескольких пользователей. Он в основном проверяет сохраненный пароль. Поэтому практичность приложения будет очень ограничена, если вы не используете db для поддержки нескольких пользователей. Кроме того, если вы собираетесь использовать db для хранения и получения значений, вам нужно убедиться, что пользователь вводит защищенные от SQL инъекции. Плюс было бы разумно зашифровать пароли, используя md5, соль, sha1 или комбинацию. Многие ребята используют комбинацию шифрования.