исправлены дефекты формулировок в конвенциях
- убраны неверные утверждения: покрытие forbidigo сужено до честного, таблица классов доменного отказа больше не претендует на полноту, механизация не подаётся как факт канона - введены недостающие определения (доменная и внешняя границы, объявление пути), критерий постоянного поля сведён к одному на R16.1 и R17 - kebab-case имени файла убран из правил в прозу: обоснование не формулировалось, номер R16 оставлен свободным
This commit is contained in:
@@ -120,7 +120,7 @@ func (d Duration) Std() time.Duration { … }
|
||||
чтением всего кода — а узнают о нём обычно на сервере, где переменная не
|
||||
выставлена.
|
||||
|
||||
### R9. Проверка запрета покрывает все входы в окружение
|
||||
### R9. Проверка запрета покрывает всю семью `os`
|
||||
|
||||
**ДОЛЖЕН.** Механическая проверка R8 (`forbidigo`) ловит не только
|
||||
`os.Getenv`:
|
||||
@@ -134,6 +134,12 @@ func (d Duration) Std() time.Duration { … }
|
||||
незаметно: правило числится механизированным, и глазами его больше никто не
|
||||
проверяет.
|
||||
|
||||
Полного покрытия этот паттерн не даёт и дать не может: мимо него проходят
|
||||
`syscall.Getenv`, вызов через алиас пакета и чтение `/proc/self/environ`.
|
||||
Проверка закрывает обычные способы — те, которыми окружение читают не
|
||||
нарочно; сознательный обход она не ловит, и считать R8 полностью
|
||||
механизированным нельзя.
|
||||
|
||||
### R10. За границей приложения запрет не действует
|
||||
|
||||
**ДОПУСКАЕТСЯ.** Чтение окружения там, где читающий — не конфигурируемое
|
||||
|
||||
Reference in New Issue
Block a user