2011-11-24 3 views
2

joomla 구성 요소를 개발 중이며 양식 제출을 통해 POST 및 GET 데이터를 가장 안전하게 보호하는 방법을 알고 싶습니다.Joomla 1.7에서 POST 및 GET 데이터를 얻는 가장 안전한 방법은 무엇입니까?

<form action="index.php?<?php echo JUtility::getToken()?>=1" method="post" name="adminForm">  
    <input type="hidden" name="option" value="<?php echo OPTIOIN_NAME; ?>" /> 
    <input type="hidden" name="task" value="save" /> 
    <input type="hidden" name="controller" value="mycontroller" /> 
    <input type="hidden" name="id" value="<?php echo $this->my_data->id; ?>" /> 


    <?php echo JHTML::_('form.token');?> 

    //my code is here 

</form> 

model.php

function getPostData(){ 

    if (!JRequest::checkToken('REQUEST')) { 
     // return 403 error 
     JError::raiseError(403, JText::_('ALERTNOAUTH')); 
     // belt and braces approach to guarantee the script stops 
     jexit('Invalid Token'); 
    } 

    $this->_data->id = JRequest::getVar('id', 0, 'POST', 'INT'); 
    //.... 


} 

이것은 내가 데이터를 전송하고있는 방법이며 나는 이것이 좋은 방법인지 모른다. 도와주세요.

+0

안전하다는 것은 무엇을 의미합니까? 어떤 종류의 공격을 막으시겠습니까? – Thilo

+2

그럼 신용 카드 세부 정보를 보내 더 안전한 방법으로 보내고 싶습니다. 나는 아직 joomla 초보자입니다 :) 그리고 내가 어떤 종류의 공격을할지 모른다. – Sara

+0

신용 카드 정보는 HTTPS를 사용하십시오. 이는 전송중인 데이터를 보호합니다. 그런 다음 데이터를 안전하게 유지하려면 데이터베이스를 보호해야합니다. 그러나 그것은이 질문의 범위 밖입니다. – Thilo

답변

2

이 방법을 사용하는 것이 좋습니다. 한가지 : POST에서 데이터를 가져 오는 경우 POST에서 토큰을 사용할 수 있으므로 JRequest :: checkToken ('REQUEST')에 대한 호출을 JRequest :: checkToken ('post'). 또 다른 중요한 점은 수동으로 데이터베이스를 만들 때 요청에서 vars를 사용하여 쿼리하는 경우 항상 $ db-> Quote() 메서드를 사용해야한다는 것입니다. 마지막으로 Thilo가 말했듯이 지불과 같은 "중요한"거래에는 HTTPS를 사용해야합니다.

도움이 되었기를 바랍니다.

+0

도움을 주셔서 감사합니다. – Sara