为了账号安全,请及时绑定邮箱和手机立即绑定

这个php登录系统安全吗?

这个php登录系统安全吗?

PHP
慕斯王 2023-03-04 15:02:41
这个登录页面是否安全,正在研究 sql 注入,如果是的话,他们是否存在漏洞,我该如何管理它?我之前将用户详细信息加密到一个文件中并存储在本地。我也用localhost,想着换个域。将用户详细信息存储在文件中是否存在任何问题?请无视html<?phpsession_start();?><html>     <body>          <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">          <input type="text" name="Username"value="">          <?php if ($_SERVER["REQUEST_METHOD"] == "POST"){          $user = $_REQUEST['Username'];          }  ?>          <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">          <input type="password" name="Password"value="">          <?php if ($_SERVER["REQUEST_METHOD"] == "POST"){          $password = $_REQUEST['Password'];          }              if (isset($_POST['submit'])) {               $file = $user.".txt";               if (file_exists($file)){                  $contents = file_get_contents($file);                  $ciphering = "AES-128-CTR";                   $iv_length = openssl_cipher_iv_length($ciphering);                   $options = 0;                   $decryption_iv = '#secret#';                   $decryption_key = "#key#";                     $decryption= openssl_decrypt ($contents, $ciphering,                    $decryption_key, $options, $decryption_iv);                    if($decryption==$password){                        echo("details match");                        setcookie("username", $user,time()+2000);                        $_SESSION["logged_in"] = true;                        $_SESSION["username"] = $user;                        header("Location:/login/new folder/findchat.php?username");                        exit();                     }                     else{                          echo('Complete im not a robot');                     }                        }          else{echo("pasword or username is not valid");}          }          ?>          <input type="submit"value="submit"name="submit">     </body></html>抱歉我的拼写错误,谢谢
查看完整描述

1 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

哇,这太可怕了。有很多漏洞。乍一看,这些是让我眼前一亮的:


<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

这很容易受到 XSS 攻击,就像这样:http://example.com/badlogin.php/"><script>alert("xss")</script>


$file = $user.".txt";

if (file_exists($file)){

   $contents = file_get_contents($file);

琐碎的目录遍历。


$decryption= openssl_decrypt ($contents, $ciphering,  

$decryption_key, $options, $decryption_iv);  

if($decryption==$password){

您应该散列密码,而不是加密它们。


您唯一没有的漏洞是 SQL 注入,那是因为您没有使用任何 SQL。


查看完整回答
反对 回复 2023-03-04
  • 1 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信