[PHP&MySQL] パスワードを変更 + URL からのシステムへの強制侵入を防止

little bottle
リリース: 2023-04-05 21:24:01
転載
2890 人が閲覧しました

##PHP MySQL を使用してパスワードを変更する #この記事では、PHP MySQL を使用してパスワードを変更する具体的なコードと操作プロセスについて説明します。

ページ: index.php ログイン ページで、システムにログインするためのデフォルトのパスワードを入力します。

チェックしてください。 php 検証ページ、パス データベースにクエリを実行して、パスワードが正しいかどうかを確認します ——> 正しい場合は、システムを入力するか、エラーが発生し、「パスワードが正しくありません」というプロンプトが表示され、ログイン ページに戻ります

system.php システム ページ「パスワード変更」リンクが含まれています

change.php 新しいパスワード変更ページを入力してください

changePwd.php パスワード変更ページ

キー コード:

#index.php

   <form action="check.php" method="post">    
   <p >请输入密码:</p><input type="password" name="psd"  />
    <button type="submit" name="submit" value="登录" />登录</button>
   </form>
ログイン後にコピー
#check.php

<?php

$servername = "localhost";
$username = "用户";
$password = "密码";
$dbname = "数据库名";


// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

$sql = "SELECT password FROM admin";      //此处涉及名称是admin的数据表,内部有name 和password两个字段,值分别是admin 和 1
$result = $conn->query($sql);
 
if ($result->num_rows > 0) {
     while($row = $result->fetch_assoc()) {
    $adminkey = $row["password"];             //设$adminkey是管理员密码,将从数据表中读取的数据赋值进去
    }
}

$conn->close();

 

/************************请在上方修改管理员密码,默认是&#39;1&#39; *************************/


 if( isset($_POST["submit"]) && $_POST["submit"] = "登录"){
    if($_POST[&#39;psd&#39;] == $adminkey){       //如果输入的密码和数据库中的默认密码相同,则进入系统
  header("Location:system.php");  
  exit;
 }else{
 ?>
 <script language="javascript">                //如果密码错误,给出提示,返回登录页面
  alert("password error");
  window.location.href="index.php";
 </script>
 <?php
   }
}

?>

system.php

<a href="change.php" class="chang">修改密码</a>
ログイン後にコピー
#change .php

##

<form action="changPwd.php" method="post" >
  请输入新密码:<input type="password" name="new_psd">
  <button type="submit" name="submit" value="修改" class="btn "/>修改</button>
 </form>
ログイン後にコピー

#changePwd.php

<?php

 if( isset($_POST["submit"]) && $_POST["submit"] = "修改"){
  $nempas = $_POST["new_psd"];
  $servername = "localhost";
  $username = "用户名";
  $password = "密码";
  $dbname = "数据库名";


  // 创建连接
  $conn = new mysqli($servername, $username, $password, $dbname);
  // Check connection
  
  mysqli_query($conn,"UPDATE admin SET password=&#39;{$nempas}&#39; WHERE name=&#39;admin&#39; ");

  //使用UPDATE语句修改数据库中的password字段,并且新的值来自 change.php页面输入的新密码

   WHERE语句必须写,否则会更新所有的字段

  mysqli_close($conn);
  ?>
  <script language="javascript">
   alert("change success");
   window.location.href="system.php";
  </script>
  <?php
 }else{
  echo &#39;alert("change error");
 }
  ?>
ログイン後にコピー

#URL を介したシステムへの強制侵入を防止します

たとえば、Web サイト名は次のとおりです。 www.xxx.com であり、閲覧者はそれが特定のシステムに属していることに気づきます。ページにログインした後、http://www.xxx.com/system.php を試行すると、パスワードの入力を省略してシステムに入ることができます。 。 。 。 [初心者レベル]

チェックページを追加できます checkInfo.php

最初にパスワードを確認してくださいページ

check.php 変更:

if( isset($_POST["submit"]) && $_POST["submit"] = "登录"){

   if($_POST[&#39;psd&#39;] == $adminkey){

  session_start();
  $_SESSION["loginKey"] = 101;                   //101随缘弄的,别的也行
 // session 变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置。Session 变量存储单一用户的信息,并且对于应用程序中的所有页面都是可用的

所以,可利用此,只有通过密码验证,才会生成$_SESSION["loginKey"],从而在之后的页面如system.php 的开头加入检查页面 checkInfo.php ,检查有没有生成的$_SESSION["loginKey"]

就可以辨别有没有绕过密码强行进入

header("Location:system.php");  
  exit;
 }else{
 ?>
 <script language="javascript">
  alert("password error");
  window.location.href="index.php";
 </script>
 <?php
   }
}

?>
ログイン後にコピー

次に、

checkInfo.php

<?php
 session_start();
 if(!isset($_SESSION["loginKey"])){    
  ?>
  <script language="javascript">
  alert("please land first");
  window.location.href="index.php";
  </script>
  <?php
 }

?>
ログイン後にコピー

# と書きます。 ##Example

system.php の先頭に追加します:

<?phpinclude &#39;checkInfo.php&#39;;?>
<!doctype html>
<html>
...... .. .. ..
</html>
ログイン後にコピー
注: session_start(); セッションを開始するとき、前のコードは何も出力できません。 (echo '...';alert("....");など)

先頭に直接投げることをお勧めします詳しく知りたい場合は、 PHP 中国語 Web サイト

PHP ビデオ チュートリアル

および

mysql ビデオ チュートリアル

にアクセスして学習してください。

以上が[PHP&MySQL] パスワードを変更 + URL からのシステムへの強制侵入を防止の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!