【问题标题】:Why is base64 encoded PHP not being decoded?为什么base64编码的PHP没有被解码?
【发布时间】:2012-04-26 21:28:22
【问题描述】:

我正在运行 Magento 版本。 1.6.2.0 在 Ubuntu EC2 实例上,但我的表单返回为 base64 编码的 php 文件,这些文件没有被解码。关于为 Magento 或 PHP 开启 base64 解码的任何想法?

我们有一个联系我们表格,您可以填写并点击提交。此表单附带我们安装的 Magento 主题(Themeforest 的 CrispAndClean)。但是,当您单击提交时,您将返回一个空白页面,而不是提交表单。点击查看源码可以看到base64编码的PHP。

您可以使用此站点对其进行解码: http://www.tareeinternet.com/scripts/decrypt.php

结果如下:

?>http://www.facebook.com/rebimol * * * @author Vladimir Popov * @copyright 版权所有 (c) 2011 Vladimir Popov * @license http://opensource.org/licenses/osl-3.0.php 开放软件许可证 (OSL 3.0) */class VladimirPopov_WebForms_Block_Webforms扩展 Mage_Core_Block_Template{ 保护函数 _toHtml() { if((float)substr(Mage::getVersion(),0,3) getTemplate() == 'webforms/default.phtml' && $this->getData('nolegacy')!='0'){ $this->setTemplate('webforms/legacy.phtml'); } } $note = "由 WebForms 提供支持

";返回父级::_toHtml().$note; } 公共函数 getFormData(){ $data = $this->getRequest()->getParams(); if(isset($data['id'])){ $data['webform_id'] = $data['id']; } if($this->getData('webform_id')){ $data['webform_id'] = $this->getData('webform_id'); } 返回$数据; } 受保护函数 _prepareLayout() { if((float)substr(Mage::getVersion(),0,3)getFormData(); //获取表单数据 $webform = Mage::getModel('webforms/webforms')->load($data['webform_id']); if(!Mage::registry('webform')) Mage::register('webform',$webform); if(intval($this->getData('results')) == 1) $this->getResults(); if($webform->getSurvey()){ $collection = Mage::getModel('webforms/results')->getCollection(); if(Mage::helper('customer')->isLoggedIn()) $collection->addFilter('webform_id',$data['webform_id'])->addFilter('customer_id',Mage::getSingleton('customer /session')->getCustomerId()); else{ $session_validator = Mage::getSingleton('customer/session')->getData('_session_validator_data'); $collection->addFilter('customer_ip',ip2long($session_validator['remote_addr'])); } $count = $collection->count();如果($count>0){ $show_success = true; } } if(Mage::getSingleton('core/session')->getWebformsSuccess() == $data['webform_id'] || $show_success){ Mage::register('show_success',true); Mage::getSingleton('core/session')->setWebformsSuccess(); } if($webform->getRegisteredOnly() && !Mage::helper('customer')->isLoggedIn()){ Mage::getSingleton('customer/session')->setBeforeAuthUrl($this->getRequest() ->getRequestUri()); Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::helper('customer')->getLoginUrl(),301);法师::register('fields_to_fieldsets',$webform->getFieldsToFieldsets()); //使用验证码 if(!Mage::helper('customer')->isLoggedIn()){ $pubKey = Mage::getStoreConfig('webforms/captcha/public_key'); $privKey = Mage::getStoreConfig('webforms/captcha/private_key'); if($this->captchaAvailable()) Mage::register('use_captcha',true); } //处理结果 if($this->getRequest()->getParam('submitWebform_'.$data['webform_id'])){ //验证验证码 if(Mage::registry('use_captcha')){ if($this->getRequest()->getParam('recaptcha_response_field')) { $verify = $this->getCaptcha()->verify($this->getRequest()->getParam('recaptcha_challenge_field'),$ this->getRequest()->getParam('recaptcha_response_field')); if($verify->isValid()){ $success = $this->saveResult(); } else { Mage::getSingleton('core/session')->addError($this->__('验证码不正确,请重试。'));法师::register('captcha_invalid',true); } } else { Mage::getSingleton('core/session')->addError($this->__('验证码不正确,请重试。'));法师::register('captcha_invalid',true); } } 其他 { $success = $this->saveResult(); } if($success){ Mage::getSingleton('core/session')->setWebformsSuccess($data['webform_id']); } //提交成功后重定向 $url = Mage::helper('core/url')->getCurrentUrl(); if($webform->getRedirectUrl()){ if(strstr($webform->getRedirectUrl(),'://')) $url = $webform->getRedirectUrl();否则 $url = $this->getUrl($webform->getRedirectUrl()); if($success) Mage::app()->getFrontController()->getResponse()->setRedirect($url);父::_prepareLayout(); $this->getLayout()->getBlock('head')->setTitle(Mage::registry('webform')->getName()); } public function captchaAvailable(){ if(class_exists('Zend_Service_ReCaptcha') && Mage::getStoreConfig('webforms/captcha/public_key') && Mage::getStoreConfig('webforms/captcha/private_key') ) return true;返回假; } 公共函数 getCaptcha(){ $pubKey = Mage::getStoreConfig('webforms/captcha/public_key'); $privKey = Mage::getStoreConfig('webforms/captcha/private_key'); if($pubKey && $privKey) $recaptcha = new Zend_Service_ReCaptcha($pubKey, $privKey);返回 $recaptcha; } 公共函数 saveResult(){ if(!Mage::registry('webform')) return false;尝试{ $postData = $this->getRequest()->getPost(); $result = Mage::getModel('webforms/results'); $session_validator = Mage::getSingleton('customer/session')->getData('_session_validator_data'); $iplong = ip2long($session_validator['remote_addr']); if((float)substr(Mage::getVersion(),0,3)getRealIp()); $result->setData($postData) ->setWebformId(Mage::registry('webform')->getId()) ->setStoreId(Mage::app()->getStore()->getId()) ->setCustomerId(Mage::getSingleton('customer/session')->getCustomerId()) ->setCustomerIp($iplong) ->save(); Mage::dispatchEvent('webforms_result_submit',array('result'=>$result,'webform'=>Mage::registry('webform'))); $emailSettings = Mage::registry('webform')->getEmailSettings(); if($emailSettings['email_enable']){ $result = Mage::getModel('webforms/results')->load($result->getId()); $result->sendEmail(); if(Mage::registry('webform')->getDuplicateEmail()){ $result->sendEmail('customer'); } } 返回真; } catch (Exception $e){ Mage::getSingleton('core/session')->addError($e->getMessage());返回假; } } 公共函数 getRealIp() { $ip = false; if(!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ips = explode(", ", $_SERVER['HTTP_X_FORWARDED_FOR']); if($ip) { array_unshift($ips, $ip); $ip = 假; } for($i = 0; $i =")) { if(ip2long($ips[$i]) != false) { $ip = $ips[ $i];休息; } } else { if(ip2long($ips[$i]) != - 1) { $ip = $ips[$i];休息; } } } } } return ($ip ? $ip : $_SERVER['REMOTE_ADDR']); } 公共函数 getResults(){ $data = $this->getData(); $webform = Mage::registry('webform'); //得到结果 $page_size = $data["page_size"]; $current_page = (int)$this->getRequest()->getParam('p'); if(!$current_page) $current_page = 1; $来自 = $current_page*$page_size; $results = Mage::getModel('webforms/results')->getCollection() ->addFilter('webform_id',$webform->getId()) ->addFilter('approved',1) ->setPageSize($ page_size) ->setCurPage($current_page) ; $results->getSelect()->order('created_time desc'); $last_page = $results->getLastPageNumber(); $page_url = $this->getUrl(Mage::getSingleton('cms/page')->getData('identifier'));回声 get_class($page_url); if($current_page1){ $next_url= $page_url."?p=".($current_page-1);法师::register('prev_url',$prev_url);法师::register('next_url',$next_url);法师::register('current_page',$current_page);法师::register('results',$results); } 受保护的函数 _afterToHtml($html){ Mage::unregister('webform');法师::unregister('fields_to_fieldsets');法师::unregister('prev_url');法师::unregister('next_url');法师::unregister('current_page');法师::注销('结果');法师::unregister('redirect_url');法师::unregister('use_captcha');法师::unregister('captcha_invalid');返回父级::_afterToHtml($html); }}?>

【问题讨论】:

  • 我是一位经验丰富的 PHP 和 Magento 开发人员,但我不知道我是否理解您所说的。示例可能会有所帮助。
  • 感谢您的浏览;更新了具体的例子。
  • 是否需要更多信息?这个问题有什么问题?

标签: php magento base64


【解决方案1】:

部分答案似乎是返回的页面第一部分中的 eval 命令没有被执行:

eval(gzinflate(str_rot13(base64_decode('HZrHkoNLtlJ/pXRdFQwA4aNaBd57z6QDYoX3X/9HLwc5yQiBuOfsvZZFf/3333/9ozzT4Y

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    相关资源
    最近更新 更多