我正在尝试为我的Joomla网站停用所有访客Cookie。
我找到了一些教程,但它们适用于Joomla版本:1.x
有什么建议吗?
答案 0 :(得分:2)
该解决方案非常类似于在Joomla版本1.x和2.x中删除cookie的解决方案。所以我们将使用相同的条件和原则。
如果您更改这两个文件,那么其他可能无法正常工作。只有当你知道自己在做什么,并且知道其他所有工作时,才改变这一点。因为你可以打破整个网站!
您必须编辑两个文件/libraries/src/Application/CMSApplication.php和libraries / joomla / session / handler / native.php
在 libraries / src / Application / CMSApplication.php 中更改第166行周围的代码并添加if方法中的整个代码if(substr($ _ SERVER ['SCRIPT_NAME'],0,14) ==“/ administrator”){
public function checkSession()
{
if (substr($_SERVER['SCRIPT_NAME'] , 0 , 14) == "/administrator"){ // added condition
$db = \JFactory::getDbo();
$session = \JFactory::getSession();
$user = \JFactory::getUser();
// ... rest of code
}
}
在 libraries / joomla / session / handler / native.php 更改第229行附近的代码,添加if方法,如前一个文件中的方法
private function doSessionStart()
{
if (substr($_SERVER['SCRIPT_NAME'] , 0 , 14) == "/administrator"){ // added condition
// Register our function as shutdown method, so we can manipulate it
register_shutdown_function(array($this, 'save'));
// ... rest of code
}
}
这适用于Joomla 3.8.2
注意:每次Joomla更新后,您必须再次编辑这两个文件并测试此解决方案是否仍然有效。
答案 1 :(得分:0)
在 Admin Joomla 设置(系统 => 配置)中设置 cookie 路径“/administrator”。 然后仅为管理区域创建会话 cookie。
答案 2 :(得分:-1)
要避免普通访问者的所有Cookie,您需要按照以下步骤操作。
First of all: Deactivate site statistics! Global configuration -> Statistics -> Statistics: No. This will stop the "mosvisitor" cookie.
Don't use the Template Chooser module, because it uses a cookie named "jos_user_template".
Be careful with components: Some might start their own PHP session.
Now to the main point: comment out line 697 of /includes/joomla.php like this:
// setcookie( $sessionCookieName, '-', false, '/' );
附加:注释掉/offline.php中的第25行:
// session_start();
这种接缝是旧版本的工件。