사용자가 과거 주문을 볼 수 있도록 사이트에 간단한 정수가 생성됩니다. url의 매개 변수를 모호하게 만드는 방법
http://site.com/order_id/145323
문제
는 그냥 그 번호를 변경 한 다음 다른 사람의 주문을 확인하는 것이 매우 쉽다는 점이다. 나는 URL에서이 숫자를 인 코드하고 PHP를 디코드하여 컨트롤러를 실행할 수있는 쉬운 방법이 무엇인지 궁금하다. 수퍼 보안이 필요하지 않습니다. 누군가 데이터를보기 위해 번호를 변경하는 것이 그렇게 쉽지는 않습니다. 내가 좋아하는 일을 시도 :order_id/<?php echo base64_encode($theOrder); ?>
다음 컨트롤러 액션에 내가 시도 :
if($orderId = (int) $this->getRequest()->getParam('order_id') && Mage::getSingleton('customer/session')->isLoggedIn()){
$orderId = (int) $this->getRequest()->getParam('order_id');
$orderId = base64_decode($orderId);
$order = Mage::getModel('sales/order')->load($orderId);
Mage::register('current_order', $order);
$this->loadLayout();
$this->renderLayout();
}
하지만이 나던 작품. URL에서이 매개 변수를 모호하게 만드는 좋은 방법은 무엇입니까?
PeeHaa와 동의하고, 또한 base64를 추가하기를 원했지만 그다지 모호하지 않았습니다. 대부분의 세미 테크니컬 사람들은 base64 문자열을 인식 할 수 있습니다 (2/3의 경우 끝에 '='패딩이 보통 줄 것입니다). –
나는 이것이 훌륭한 해결책이 아니며 해킹하기 쉽다는 것을 이해하지만, 지금있는 것보다 낫다. 나는 PeeHaas 솔루션을 어떻게 할 것인지 알았지 만, 그런 식으로 체크를 어디에서 시작해야하는지 알지 못해서 임시 픽스를 빨리 얻어야합니다. – Zac
높은 수준의 잘못이 아닌 다른 방법을 사용하면 원하는대로 성취 할 수있는 것처럼 보입니다. 왜 작동하지 않습니까? –