Kacam.net

Ревью кода

评审一个列表接口

一个分页列表接口。改一个参数,你能看到谁的数据?

Скопируйте заготовку и выберите модель. Она будет вести себя как интервьюер и разбирать задачу с вами по действиям, а не выкладывать ответ.

ChatGPT Claude DeepSeek 豆包 Kimi Gemini

На телефоне с установленным приложением система откроет само приложение. Внутри WeChat внешние приложения не открываются — сначала откройте ссылку в браузере.

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

这一份不接受名词。你说「这里有越权」,它会说:把那个 HTTP 请求写出来,参数填成什么,你会看到谁的数据。 写不出请求的,记成背的。

其中有一条是这批题里最值钱的知识点之一:参数化查询挡不住它。为什么挡不住、那该用什么,第三幕会问到底。

第四幕还有一问值得先想想:你的修法是写在这个函数里,还是有一层统一的地方 —— 下一个人写新接口时会不会又忘一次。

★★★★☆ · около 35 мин · Что проверяется: 水平越权、排序参数注入、整行直出、N+1、分页没有上限

Что здесь в основном подложено

Права доступа Утечка данных

Делали эту задачу?

Войдите, чтобы отметить, что задача пройдена: в следующий раз будет видно, когда это было.

Заметки тех, кто уже прошёл

Пока никто не написал. После разбора расскажите, что из него вышло: на каком действии вы застряли и какой вывод потом поменяли.

Войти, чтобы написать заметку.

Как этим пользоваться

Материал наш: несколько десятков строк с виду рабочего кода и десяток дефектов, подложенных по убыванию тяжести. От вас эта серия не требует ничего — открывайте и начинайте.

Поза допросная: без спойлеров, без похвалы, и «не смог ответить» — нормальный исход. Скажете «здесь гонка» — не отпустит: потребует две колонки таймлайна и масштаб ущерба.

С чего начать

  1. Выберите одно, откройте, скопируйте промпт.
  2. Вставьте в новый пустой чат — он сам вернёт вам этот код без изменений.
  3. Читайте сами и назовите все найденные проблемы по одной — в первой сцене он не перебивает и не подсказывает. Закончив, скажите «это всё».

Четыре команды, их можно бросить в любой момент

  • 跳过 Сразу к следующей сцене
  • 提示 Дай направление, но не ответ
  • 直说吧 Дай полный ответ по этому пункту и продолжай спрашивать про цену
  • 复盘 Сразу к итоговой карточке

В конце — цифра

Доля находок: сколько нашли сами, из скольких, и сколько было ложных срабатываний. И ещё одна, менее приятная цифра — сколько из пропущенного относится к высшей степени тяжести (пропадают деньги, утекают данные, падает сервис). Она полезнее общей оценки.

Три ловушки

  • Ключ в конце — это и есть тот самый список дефектов. Не читайте его заранее: прочитали — задание израсходовано.
  • Не сообщайте о названиях и стиле. Здесь считается, теряются ли деньги и утекают ли данные; замечания по стилю записываются как ложное срабатывание.
  • Как только начнёт хвалить, напомните про правило «не хвали меня». Ощущение правоты заглушает вопрос «что я пропустил».

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