当我调用我的事件跟踪器日历时,我发现一个Ajax服务正在运行。myserver/tiki-tracker_calendar-list?trackerId=30&beginField=startDate&endField=endDate&resourceField=title&coloringField=null&filters=%0D%0A%7Bfilter%20field%3D%22tracker_field_eventCategory%22%20content%3D%22%22%7D%0D%0A&start=1488085200&end=1491710400&_=1490626987241
如果攻击者利用这一点并输入: tiki-tracker_calendar-list?trackerId=30&beginField=startDate&endField=endDate&start=0&end=9999999999,则系统将返回跟踪器30中的所有事件。我试着进入:‘`if (!isset($user))
{
header('Location: index.php');
死亡;
文件中的}`:/var/www/html/tikisvn15/tiki-ajax_services.php
在第35行
它起作用了。还有别的办法吗?我的修改会阻止来自其他组件的Ajax服务吗?
发布于 2017-03-29 00:34:13
您可以设置哪些组可以使用Tiki权限系统查看内容。See the documentation here
注意,一旦您将跟踪器设置为对匿名(未登录)用户不可见,您将需要重新构建搜索索引(在控制面板-> search上),因为TrackerCalendar广泛使用搜索索引。
我建议不要在tiki代码中放置像这样的任意用户检查,因为它将停止工作,并且很难找出原因,我认为。
https://stackoverflow.com/questions/43050033
复制相似问题