Nano Hash - криптовалюты, майнинг, программирование

CakePHP: ложное срабатывание authError с ACL

Я настроил работающую систему ACL с CakePHP на существующем сайте моей компании. Ограничение доступа работает отлично, группы и отдельные пользователи, которые не имеют права посещать определенную часть сайта, получают сообщение authError, объясняющее, что у них нет надлежащих прав.

Единственная проблема заключается в том, что в Firefox я иногда получаю — то, что я хотел бы назвать — ложные срабатывания. Это означает, что даже если у пользователя есть доступ к определенному контроллеру и действию, ошибка authError все равно появляется. Странно то, что представление по-прежнему отображается правильно, и, кроме ошибки authError, в этом нет ничего плохого. Все работает, пользователи видят то, что им нужно видеть. Только иногда все же отображается ошибка authError.

Теперь это случайным образом иногда происходит в Firefox, но в IE8 это происходит постоянно. Несмотря на то, что у пользователя есть полный доступ ко всему сайту, сообщение authError по-прежнему отображается на каждой отдельной странице в IE8. Я не проверял, сохраняется ли эта проблема в других браузерах IE, но, поскольку она возникает как в IE8, так и в FF, я подумал, что они, вероятно, существуют и в других.

Теперь я не могу понять, почему это происходит, поскольку здесь нет реальной закономерности. В FF ошибка authError случайным образом дает ложное срабатывание, а в IE8 она просто отображается постоянно.

Можно возразить, что по какой-то причине права пользователей проверяются после того, как сообщение authError получило разрешение появиться. В результате правильный доступ, даже если сообщение об ошибке уже отображается. Я уже проверил, имеет ли к этому какое-то отношение время загрузки страницы, но, похоже, это не так.

Есть ли пользователи, которые знают, в чем может быть причина этой проблемы? Заранее спасибо!

29.09.2011

  • Я бы проверил, есть ли на ваших страницах какой-либо контент, который пытается получить доступ к защищенному URL-адресу (я думаю о запросе Ajax, неправильном URL-адресе для изображения, указывающего на защищенное действие и т. д.). Это установит сообщение об ошибке аутентификации в сеансе, которое будет отображаться при следующей загрузке страницы. А разницу в поведении между Firefox и IE можно объяснить разной политикой кэширования. 29.09.2011

Ответы:


1

Я не совсем уверен, почему это происходит, и я не знаю, смогли ли вы решить свою проблему. Тем не менее, я также использую ACL, и у меня была аналогичная проблема, и я решил опубликовать ее здесь и, надеюсь, кому-то помочь.

У меня был контроллер статей, и мне нужно было, чтобы действия index и view были общедоступными. Что бы я ни делал, ничего не получалось. Я бы все равно получил тот же not authorized error. После многих бессонных ночей попыток и попыток я обнаружил, что, хотя я запрашиваю, например, действие view, любые другие действия, на которые есть ссылки в действии просмотра, такие как getRelated или getComments, также должны быть добавлены.

Проблема была решена, или я так думал. Однако периодически ошибка выскакивала снова и снова. Та же проблема, та же ошибка. Теперь я смог получить доступ к действию «Просмотр», но не к индексу, хотя с $this->Auth->allow все выглядело хорошо.

После еще многих головокружений я пришел к выводу, что мне нужно сделать то же самое с моим контроллером категорий. В этом контроллере я создал действие getRelated, которое извлекает все статьи, относящиеся к определенной статье, на основе ее категории.

Как только я это сделал, теперь все мои проблемы исчезли, и у меня не было подобной проблемы. Теперь я действительно могу сосредоточиться на других разделах моего проекта.

19.12.2011
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..