ホームページ  >  記事  >  バックエンド開発  >  初心者が正規ユーザーの確認について質問する

初心者が正規ユーザーの確認について質問する

WBOY
WBOYオリジナル
2016-06-23 14:00:06692ブラウズ

みなさん、こんにちは!最近phpを勉強し始めました。 ログインインターフェイスとは、アカウントとパスワードがデータベースと同じである場合に、セッション=ユーザー名を与えます
その後、各インターフェイスでユーザーが正当なユーザーであるかどうかを確認します。 php

コードの主な意味は、セッションが空の場合、プロンプトは不正ですが、セキュリティが非常に悪いことがわかりました。何か良いアイデアやコードはありますか? ありがとう

ありません。初心者のためポイントが多くてごめんなさい


ディスカッションに返信(解決策)

session はグローバル変数なので、どこでも使用できます ページはセッションが存在するかどうか、および値があるかどうかを確認します

Sessionグローバル変数。セッションが存在するかどうか、および任意のページに値があるかどうかを確認できます

私のオリジナルの checkA..PHP は次のように記述しました
session_start()
if($_SESSION[admin_name]= =""){
echo "<script>alert('申し訳ありませんが、正しいチャネルを通じてボカオ図書館管理システムにログインしてください!');window.location.href='login .php';</script&gt ;"; <br /> } <br /> ?> <br> <br> しかし、それは危険な気がします。外部フォームが不正に送信された場合、seession== "any content" を使用することで実行できます。どうすれば変更できますか? <br> </p> $ _SESSION[' 'admin_name]=="" は session=="" とは異なります <p class="sougouAnswer"> </p> php のバージョンをお知らせください <p class="sougouAnswer"> <br> if($_SESSION[admin_name]==""){ <br> と書く必要があります <br> if(! isset ($_SESSION[ 'admin_name'])){ <br> <br> <br> </p> バージョン 5.4.3<p class="sougouAnswer"> </p> 間違った 5.3.4 <p class="sougouAnswer"> </p> <p class="sougouAnswer"> 外部フォームが不正に送信された場合、session== "any content" を使用して実行できます <strong> </strong> それはあなたのものですか想像ですか、それとも本物ですか? <br> </p> <p class="sougouAnswer"> フォームが外部から不正に送信された場合、session== "任意のコンテンツ" を使用して実行できます <strong> </strong> 私の checkA のコードは想像ですか? <br> <br>以下の通り<br> <?php <br /> //権限の検証<br /> //2014-3-20 <br /> //by liu <br /> session_start(); <br /> if ($_SESSION['username']==""){ <br /> echo "&lt ; スクリプト言語='javascript'>alert('不正な操作です! ');location='http://127.0.0.1/admin/index.php';</script>";
}
?>

ログインコードは以下の通りです
//ログイン情報を確認します
//2014-3-24
//by liu 1s
session_start();
include_once 'connss.php';
//if($_POST['submit']){
$username=$_POST ['ユーザー名 '];
$userpasswd=$_POST['answers'];
$userpasswd=md5($userpasswd);
$sql="select * username=' $username'";
$query=mysql_query($sql);
$row=mysql_fetch_array($query);
if ($row['answers']==$answers){
if($row[ 'username' ]==$username){
if($row['userpasswd']==$userpasswd){
$_SESSION['username']=$username;
echo "";
}}
else {
echo "";
}}
else {
echo "";
}
?>


各ページの前に checkA.php をインクルードします

次に、外部送信とコンテンツを模倣する新しい php を作成しますフォームはニュースを追加するために使用され、 session_start(); で始まります。
正常に送信できることがわかりました。 ['username']="123 ";
は php プログラムであり、送信できるフォームではありません
もちろん、誰かがあなたのサーバーにアクセスしてプログラムを変更する場合は別の話になります

session_start();
$_SESSION['username']="123";
これは送信できるフォームではなく、php プログラムです。
もちろん、誰かがあなたのサーバーにアクセスしてプログラムを変更するなら、それは別の問題です

私がこのように書いた checkA.php が安全かどうかを聞きたいだけです。安全でない場合、どうやって変更すればよいですか? ありがとうございます

安全なはずです

安全なはずです

他に何かアイデアはありますか

勉強になりました! ! !

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:php出力HTMLコード次の記事:php出力HTMLコード