我更改了magento代码 C:\ XAMPP \ htdocs中\ Magento的\ APP \设计\前台\ 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 } ?>
答案 0 :(得分:0)
您的方法中没有SQL,因此可以理解此代码对于SQL注入是不可行的。
回答基本问题;
未登录的用户是否仍可将产品添加到购物篮或 查看价格?
您没有采取任何措施阻止用户使用直接网址来实现某个目标。将产品添加到购物篮时,您将调用某个URL。用户仍然可以调用这样的网址来向他们的购物篮添加内容。当人们想要查看他们的篮子时,他们会调用一个仍然可以调用的URL ...
要真正确定,您还必须对控制器/操作进行“登录”检查。