2017-03-27 19 views
0

我发现一个正在运行的Ajax服务,因为我调用了我的事件跟踪器日历。 [MYSERVER] /忻-tracker_calendar列表?trackerId = 30 & beginField =的startDate & ENDFIELD =结束日期& resourceField =标题& coloringField = NULL &滤波器=%0D%0A%7Bfilter%20field%3D%22tracker_field_eventCategory%22%20content% 3D%22%22%7D%0D%0A &开始= 1488085200 &末= 1491710400 & _ = 1490626987241我将如何停止Tikiwiki中的匿名用户的Ajax请求服务?

如果攻击者利用这一点,并输入: 的tiki-tracker_calendar列表trackerId = 30 & beginField =的startDate & endField = endDate & start = 0 & end = 9999999999 系统将返回跟踪器30中的所有事件。 我试图输入: `if(! isset($用户))

{

头( '位置:的index.php');

die;

}` 在文件:/var/www/html/tikisvn15/tiki-ajax_services.php

在35行

它的工作原理。有没有其他方法?我的修改会停止其他组件的Ajax服务吗?

回答

1

您可以设置哪些组可以看到使用Tiki权限系统的内容。 See the documentation here

注意,一旦您设置您的跟踪不可见的匿名(在没有登录)的用户,您将需要重建搜索索引(在控制面板 - >搜索),因为TrackerCalendar使用搜索索引广泛。

我会建议不要在tiki代码中插入像这样的任意用户检查,因为事情会停止工作,并且很难弄清楚为什么,我想。

+0

工作。但是,当我输入URL时,它仍然显示一个空数组。我想我会忍受这一点。 – Tommy

+0

是的,返回的空数组是因为它可能不是没有任何项目可见的错误 - 跟踪器权限非常复杂:您可以调整全局或每个跟踪器,或按类别或状态甚至“所有权”的查看权限,所以如果没有任何可见的话,返回一个错误在很多情况下都不会有用。 虽然很喜欢它,欢迎来到Tiki! – jonnybradley