2011-05-10 3 views
0

私のコードは以下の通りですが、WordPressのブログで「安全」なAJAX検索フォームを作成しようとしています。セッション変数やクッキーを検出するか何か文書へのアクセスを防止するために、ワードプレスのセッション/クッキー変数を検出する

<?php 
@session_start(); 

If (!array_key_exists(‘authed’, $_SESSION)) 
{ 
    include ‘not_authed.inc’; 
    exit(); 
} 

// go about your business. 

?> 

と私はこれにそれを追加しようとしています:

<?php 

function checkValues($value) 
{ 
    // Use this function on all those values where you want to check for both sql injection and cross site scripting 
    //Trim the value 
    $value = trim($value); 

    // Stripslashes 
    if (get_magic_quotes_gpc()) { 
     $value = stripslashes($value); 
    } 

    // Convert all &lt;, &gt; etc. to normal html and then strip these 
    $value = strtr($value,array_flip(get_html_translation_table(HTML_ENTITIES))); 

    // Strip HTML Tags 
    $value = strip_tags($value); 

    // Quote the value 
    $value = mysql_real_escape_string($value); 
    return $value; 

} 
mysql_connect ("mysql.*****.com", "****","$*****") or die (mysql_error()); 
mysql_select_db ("***********"); 

$term = checkValues($_REQUEST['val']); 
$term = mysql_real_escape_string($term); 

$sql = mysql_query("select * FROM patient_db WHERE id_number = '$term'"); 


if($row = mysql_fetch_array($sql)) { 
    echo "<img src=\"******\" class='leftfloat' border=0>"; 
    echo '<p>'; 
    echo '<br /> ID Number: ' .$row['id_number']; 
    echo '<br /> Name: '  .$row['Name']; 
    echo '<br /> Exp. Date: ' .$row['exp_date']; 
    echo '<br /> DOB: '   .$row['dob']; 
    echo '</p>'; 
    //echo "<a href='******' title='Printer Friendly Version' alt='Printer Friendly Version'><img src=\"*****\" class='rightfloat' border=0 height=33 width=33></a>"; 
} else { 
    echo "<img src=\"*****\" height=50 width=50 class='leftfloat' border=0>"; 
    print "<h1>USER ID <br/>NOT FOUND</h1><br />"; 
    print "<strong>OOPS!! THIS COULD BE AN ERROR</strong><br />"; 
    print "<br />"; 
    print "<div>*****</div>"; 
} 

?> 

答えて

1

あなたが持ってしようとしている問題はAJAX要求が別のセッションであるということです/クッキーはブラウザとはまったく別のプロセスです。

誰かを認証するにはどうすればいいですか?一種のトークン。だからあなたはハッシュを作成するでしょう。これはユーザーのためにデータベースに保存する必要があり、ログイン時に再生成することができます。そして、このトークンを使用してそのユーザーを検証し、AJAXの送信を許可します。

うまくいけば、それはあなたのためにボールが圧延されることを望みます。だからあなたのAJAXプッシュスクリプトでは、あなたはtokenと呼ばれるGETまたはPOSTデータに変数をアペンドして、受け取るPHPスクリプトでそれを確認します。それを行う他の方法があります、これは私が知っているただ一つです:)

関連する問題