я изменил magento код в
C: \ XAMPP \ HTDOCS \ Magento \ приложение \ дизайн \ оболочка \ MyPackage \ MyTheme \ шаблон \ каталог \ продукт \ list.phtml
C: \ XAMPP \ HTDOCS \ Magento \ приложение \ дизайн \ оболочка \ MyPackage \ MyTheme \ шаблон \ каталог \ продукт \ price.phtml
чтобы показывать цены только в том случае, если пользователь вошел в систему, а также скрыть кнопку корзины и цену, когда товар имеет цену 0,00
моя проблема в том, что я не хочу, чтобы пользователь использовал методы инъекции, чтобы обойти это, поэтому мой вопрос, является ли мой код уязвимым для инъекции SQL?
<!-- To hide price if price is 0 if not display the details -->
<?php if($_product->price==0): ?>
<?php echo ''; ?>
<?php else: ?>
<?php echo $this->getPriceHtml($_product, true) ?>
<?php endif; ?>
<div class="actions">
<!-- To hide the shopping basket -->
<?php if (Mage::getSingleton('customer/session')->isLoggedIn()): ?>
<?php if($_product->isSaleable() && ($_product->price>0)): ?>
<button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
<?php else: ?>
<p class="availability out-of-stock"><span><?php echo $this->__('Auf anfrage') ?></span></p>
<?php endif; ?>
<!-- if they are not logged in then -->
<?php else: ?>
<p class="nurfuer"><span><?php echo 'only for registered users'?></span></p>
<p class="nurfuer"><span><?php echo 'please register'?></span></p>
<?php endif; ?>
а также в файле price.phtml, который я добавил
<?php if (Mage::getSingleton('customer/session')->isLoggedIn()) { ?>
and at the end of the file
<?php } ?>
В вашем подходе нет SQL, поэтому понятно, что этот код не подходит для внедрения SQL.
Ответить на основной вопрос;
Могут ли пользователи, которые не вошли в систему, по-прежнему добавлять товары в корзину или
посмотреть цены?
Вы не сделали ничего, чтобы запретить пользователю использовать прямые ссылки для достижения определенной цели. Когда вы добавляете товар в корзину, вы вызываете определенный URL. Пользователи по-прежнему могут вызывать такой URL, чтобы добавить что-то в свою корзину. Когда люди хотят просмотреть свою корзину, они вызывают URL-адрес, который все еще может быть вызван …
Чтобы действительно убедиться, вам нужно будет также выполнить проверку входа в систему на контроллерах / действиях.
Других решений пока нет …