getBlockHtml ( 'formkey') 란 무엇입니까?


19

Magento에서 제품 편집 페이지 (첫 번째 탭)를 편집하려고하는데 각각의 탭에서 첫 번째 페이지로 수량 (및 기타 몇 가지)을 이동하려고합니다. 내가 참조

<form action="<?php echo $this->getSaveUrl() ?>" method="post" id="product_edit_form" enctype="multipart/form-data">
<?php echo $this->getBlockHtml('formkey')?>
<div style="display:none"></div>
</form>

수량 텍스트 상자의 코드가

    <tr>
        <td class="label"><label for="inventory_qty"><?php echo Mage::helper('catalog')->__('Qty') ?><span class="required">*</span></label></td>
        <td class="value">
            <?php if (!$_readonly):?>
            <input type="hidden" id="original_inventory_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][original_inventory_qty]" value="<?php echo $this->getFieldValue('qty')*1 ?>"/>
            <?php endif;?>
            <input type="text" class="input-text required-entry validate-number" id="inventory_qty" name="<?php echo $this->getFieldSuffix() ?>[stock_data][qty]" value="<?php echo $this->getFieldValue('qty')*1 ?>" <?php echo $_readonly;?>/>
        </td>
        <td class="value scope-label"><?php echo Mage::helper('adminhtml')->__('[GLOBAL]') ?></td>
    </tr>

누구든지 첫 번째 탭의 코드가 어디에 있는지 알고 있습니까? formkey와 관련이 있습니까?

감사!

답변:


43

Magento의 양식 키는 Cross Site Request Forgery를 방지하는 수단입니다. 여기에서 Ashley Schroder가 훌륭하게 설명 하지만 간단히 말해서 장바구니에 추가하는 다른 사이트에서 양식에 게시하려는 사람들로부터 안전하게 보호 할 수 있습니다. 당신.

누군가 이론적으로 자신의 양식을 작성하고 사용자가 모르게 상점의 양식 핸들러 제어기 조치에 게시 할 수 있기 때문에 위험 할 수 있습니다. CSRF 보호는 기본적으로 form post와 함께 포함 된 form_key 매개 변수를 검사하지 못한 모든 post를 무시합니다.

그래서 무엇을 <?php echo $this->getBlockHtml('formkey')?>합니까? Magento에게 "formkey"라는 이름의 레이아웃 블록을 찾아 출력하도록 지시합니다. 마 젠토에서 이것은 보통 이것 안에있는 파일입니다 :

<div><input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" /></div>

이는 Magento가 사용자 세션에 대한 고유 한 양식 키를 출력하고 저장하도록 지시합니다. CSRF로 보호 된 모든 Magento 컨트롤러 작업은 중요한 작업을 수행하기 전에 이에 대해 확인합니다.

HTH!


글쎄요, 그들이하는 일을 확실히 설명해 주셔서 감사합니다. 이제 나는 여전히 제품 수량 첫 번째 탭으로 수량을 가져 오는 방법을 알아 내려고 남아 있습니다. 생각? 나는 맨 위에 할 수 있지만 포함 된 필드 중 하나가되기를 원하므로 거기에 있어야하는 것처럼 보입니다.
new2programming

마지막 문장 은 CSRF로 보호되지 않는 일부 마 젠토 컨트롤러 가 있는지 궁금합니다. o_O
Nick Rolando
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.