使用php嵌入保存Joomla 3.4.8文章时收到403错误

时间:2016-03-02 23:06:34

标签: php joomla http-status-code-403

我过去曾经使用过这个版本(早期版本的Joomla),但是必须改变一些东西而且我无法让它工作(即使在一个全新的网站中)。我正在使用Joomla 3.4.8,最新版本的JCE和DirectPhp。 我有全局配置>文字过滤器设置>超级用户设置为无过滤,并已调整JCE管理>编辑简介>默认>编辑器参数>高级>允许PHP为是。

然而,当我用Php代码保存任何文章时,我收到403错误。没有PHP代码,它可以正确保存。

有人有任何提示吗?

3 个答案:

答案 0 :(得分:0)

我们的许多客户都面临同样的问题。事实证明,这与他们的主机强制浏览器缓存非静态内容有关。请按照此处的指南(http://www.itoctopus.com/how-to-disable-browser-caching-in-joomla-backend)并将相应的代码添加到.htaccess文件中以防止浏览器缓存。如果它能解决您的问题,请回复此处。

答案 1 :(得分:0)

我解决这个问题的一个方法就是直接在PHPmyAdmin中编辑php代码。

似乎apache服务器上的mod_security导致在代码错误或受限制时强制错误。 (这不是一件坏事,因为它确实会阻止你网站上的黑客攻击。)

通过phpMyAdmin需要更多技巧,但工作方式完全相同。

无论如何,当我遇到这个问题时,这就是我现在所做的。 (困难的部分是找到导致错误的原因)

答案 2 :(得分:0)

可能mod_security被设置为阻止PHP注入攻击,并且将其视为一种。告诉方法是检查apache错误日志和mod安全审核日志。然后,如果您有权访问配置文件,则可以基于该URL或该变量配置一个例外,以将其从PHP注入检查中列入白名单。

警告:如果这样做,请确保处理该表单的代码将能够防御注入,因为您只是停止了Apache的防御。

但是最好的解决方案是编写一个可以从内容项中调用的插件,而不是将所有代码都注入到您的内容中。使维护更容易-更改是本地化的,而不是分散在许多数据库记录中。只需对插件进行一次更改,每个需要它的页面都将进行更改,而不必触摸数据库中的每个项目来进行相同的更改。

PS:有一个Joomla Stack Exchange。检查列表(在撰写本文时,位于右上方)。