2011-01-17 2 views
0

나는 모든 사용자 세부 정보로 구성된 동적 테이블을 가지고 있으며 특정 사용자에 대한 특정 코스 세부 정보를 볼 수있는 다른 페이지로 연결되는 클릭에 대한 링크를 가지고 있습니다. 내 문제는 ID를 숨기고 URL을 숨길 수있는 방법이나이숨기기 a get php url

echo "<td>" . $lead['lastname'] . "</td>"; 
echo "<td>" .'<a href="course_complete_sup.php?id'.$row1['userid'].'" class="lien2" value='.$row1['userid'].'/>Course Completed</a>' ."</td>" ; 
echo "<td>" .'<a href="course_progress_sup.php?id='.$row1['userid'].'" class="lien2" value='.$row1['userid'].'/>Course Progress</a>' ."</td>" ; 
echo 

들으

+0

는 현재 로그인 한 사용자에 따라 ID입니다? – Dogbert

+2

모호한 보안! == 보안. 당신은 당신의 앱을 안전하게 만들어야하고, 필요하지는 않지만 쉽게 추측 할 수있는 정보는 숨기지 않아야합니다. – deceze

+0

특정 사용자 정보 만 표시 될 수있는 인사말을 기반으로합니다. – vimal

답변

-2

..

$ _SESSION

[ 'rand_seed'] = 랜드 (1,100000);

에코 "". $ 납 [ '성']. "";

echo "<td>" .'<a href="course_complete_sup.php?id='.md5($row1['userid']).$_SESSION['rand_seed'].'" class="lien2" value='.$row1['userid'].'/>Course Completed</a>' ."</td>" ; 

그것은 페이지 course_complete_sup.php 직접 때

$ IDS = $ _GET [ 'ID']; $ salt = $ _SESSION [ 'rand_seed']; unset ($ _SESSION [ 'rand_seed']); 다른

if ($salt < 1) 
{ 
    header("location: access-denied.php"); 

} 

{

list($var1) = explode($salt, $ids, 2); 

} 


$encrypt = mysql_query("select distinct(userid) from course_complete "); 
{ 
while($row = mysql_fetch_array($encrypt)) 
{ 

    $r= md5($row['userid']); 
    if($r== $var1){ 
       $id = $row['userid']; 
    } 

}

} 

그리고 그것은 작동합니다 !!!!!!!!!!

들으의 왕국과 U 모든 ...

Cheersssssss

0

아니를 할 수있는 방법이 있습니까 ..뿐만 아니라 포스트 방법을 사용할 수 없습니다, 당신은 GET, 매개 변수를 사용하는 경우 URL에 표시됩니다. 지금 당장 리디렉션을 시도 할 수는 있지만 보안이 문제가되는 경우에는 도움이되지 않습니다.

POST를 사용할 수없는 특별한 이유가 있습니까? 그 정보를 숨길 필요가 있다면 정말 갈 수있는 방법입니다.

+4

심지어 POST는 정보를 숨길 수 없습니다. 이것은 모두 공개 데이터입니다. –

+0

두 페이지를 1 개 완료하고 2 개의 다른 링크에서 진행하기 위해 1 개 있습니다 .. 보안 대책 자체를 위해 나는 그들을 숨길 필요가 있습니다 ... – vimal

-3

사용자가 URL을 보지 못하게하는 유일한 방법은 일반적으로 지나치게 복잡하고 느린 서버의 모든 것을 수행하는 것입니다. URL의 보안 문제가 아닌 코드를 재 설계해야하지만 그렇지 못하면 링크에 해시 또는 임의 번호를 보내야합니다.

예를 들어, 다음과 같은 링크를 만들 수 있습니다

'<a href="newaction.php?action='.md5("user_id=" . $row1['userid'])).'" class="lien2" />Course Progress</a>' 

을하고 PHP 코드에 대해 아무것도 모르고, 난 당신이 newaction.php에 다음과 같은 것을 할 수 있다고 가정합니다 :

<?php 
// ... a bunch of code ... 
if ($_GET['action'] == md5("user_id=" . $row1['userid'])) { 
    course_progress_sup($row1['userid']); 
} 
// .. a bunch more code ... 
?> 

나는 이것이 나쁜 생각이라는 것을 상기시키고, 당신이 어떻게해야하는지 다시 생각해 봐야한다. 그러나해야만한다면 그렇게 할 수있을 것이다. 난 왕국의 방법을 사용하여 확인

+0

이걸 얻기 위해서 우리는 sql과 match를 사용하여 지시 된 페이지에서 ID를 암호화해야합니다 GET id .. 이것은 오랜 시간이 걸릴 것입니다.하지만 그 gud idea ... 그러나 어떤 숫자는 md5에서 암호화 될 수 있기 때문에 정적으로 남아있을 것입니다. – vimal

+0

이것이 문제가된다면 임의의 시드를 사용하고 싶을 것입니다. 해시. 다음과 같이 할 수 있습니다 : $ _ SESSION [ 'rand_seed'] = rand (1,100000); 그런 다음 모든 md5 : .... href = "newaction.php? action = '. md5 ("user_id = ". $ row1 ['userid ']). $ _SESSION ['rand_seed ']) clas ..... – regality

+0

naaaaa .... 나는 그것을 시도했습니다 ...하지만 get 및 md5 convertion에서 값을 일치시키는 동안 ... 그것은 작동하지 않습니다 ... – vimal