2010-07-16 3 views

답변

2

하면, 당신은 사용자가 여러 탭을 열면 사실을 기억하셔야합니다 사전에

감사 체크인 및 체크 아웃에 대한

<a href="rooms.php?roomID='. $value['room'].'&in='.$checkin.'&out='.$checkin.'"> 

2 개 세션 그의 브라우저에서 모든 탭이 동일한 세션을 공유하므로 코드 작성이 어려워 질 수 있습니다 .-)


URL을 사용하는 것이 좋습니다. XSS에주의하십시오. 상황에 따라 htmlspecialchars() 및/또는 urlencode()과 같은 기능을 사용하여 출력을 올바르게 이스케이프 처리하는 방법에 대해 생각해보십시오. 하지만


한 가지 : 이론적으로, 당신의 rooms.php 스크립트가을 (데이터베이스에 뭔가를 저장 같은) 일부 데이터를 수정하는 경우, 당신은 HTTP POST을 사용하고 GET HTTP에서 안된다.

Safe methods을 살펴보고 Idempotent methods and web applications을 읽는 것도 재미있을 수 있습니다.

1

세션 변수를 사용하는 것이 서버 측에 더 많은 데이터를 저장하고 세션 토큰을 쿠키로만 사용자에게 전달할 수 있기 때문에이를 수행하는 더 좋은 방법 일 수 있습니다. 유일한 문제는 사용자가 쿠키를 사용할 수없는 경우입니다. 이것은 모든 사용자 중에서 아주 작은 비율입니다.

세션을 사용하면 모든 링크와 모든 페이지의 모든 양식에 매개 변수를 추가 할 필요가 없으며 사용자가 브라우저가 아닌 페이지를 닫은 후에도 계속 작동한다는 것을 의미합니다. 나중에 다시. 호텔 거래를 검색 할 때마다 항상이 작업을 수행합니다.

URL 매개 변수에 대해서는 사용자에게 전달하기 전에 모든 매개 변수를 이스케이프 처리해야합니다. 다음을 수행하십시오 :

<?php 
$url = "rooms.php?roomID=" . urlencode($value['room']) 
     . "&in=" . urlencode($checkin) 
     . "&out=" . urlencode($checkout) 

?> 
<a href="<?php echo $url ?>">...</a> 

그런 식으로 사이트 간 스크립팅 공격에 대한 페이지가 열리지 않습니다.

관련 문제