PRZEGLĄD FUNKCJI: Zastępowanie reguł opartych na plikach¶
W tym dokumencie opisano, jak przechowywać wrażliwe wartości (hasła, klucze API, tokeny)
z kodu źródłowego FUZZY_MAP_pre / FUZZY_MAP i historii Git, ładując
„zastępowanie” tekstu z osobnego pliku w czasie wykonywania, zamiast kodowania go na stałe.
Jest to szczególnie przydatne podczas transmisji na żywo lub udostępniania ekranu, gdy mapa jest wyświetlana Sam kod źródłowy może być widoczny, ale plik odniesienia nie.
1. Koncepcja¶
Zwykle pole „zastępowania” reguły jest dosłownym tekstem wyjściowym:
KOD_BLOKU_0
Po włączeniu zastępowania na podstawie plików wartość „zastępowania” rozpoczynająca się od a
skonfigurowany prefiks (domyślnie - lub .) jest zamiast tego traktowany jako nazwa pliku.
Aura rozpoznaje tę nazwę pliku w odniesieniu do własnego katalogu wtyczki, odczytuje jego
treści i używa tej treści jako tekstu zastępczego.
KOD_BLOKU_1
Jeśli plik „api_key.txt” istnieje obok pliku „FUZZY_MAP_pre.py” wtyczki, jego (usunięty)
zawartość jest używana jako zamiennik. Jeśli plik nie istnieje, literał
Zamiast tego zwracany jest ciąg -api_key.txt (bezpieczny w przypadku awarii: brak przypadkowego wycieku
„nie znaleziono pliku” jako użyteczny tekst i bez awarii).
2. Ustawienia¶
Skonfigurowany w config/settings.py (lub config/settings_local.py dla lokalnego
zastępuje):
Ustawienie |
Wpisz |
Domyślne |
Opis |
|---|---|---|---|
|
|
|
Przełącznik główny dla całej funkcji. Jeśli „Fałsz”, „zastąpienie” jest zawsze używane dosłownie. |
|
|
|
Wartości „zastępcze” muszą zaczynać się od jednego z tych przedrostków, aby uruchomić wyszukiwanie pliku. Pusty/ |
|
|
|
Jeśli |
|
|
np. |
Rozwiązane ścieżki bezwzględne rozpoczynające się od którejkolwiek z nich są zawsze odrzucane, niezależnie od |
3. Rozdzielczość ścieżki¶
Plik jest rozwiązywany w następujący sposób:
Ścieżka_źródłowa wtyczki (zapisywana automatycznie przez moduł ładujący mapy) to połączone z
SL5NET_AURA_PROJECT_ROOT(odczytywane zSL5NET_AURA_PROJECT_ROOTzmienna środowiskowa), aby uzyskać katalog wtyczki.Wartość „zamienna” jest dołączana do tego katalogu.
Jeśli „FILE4REPLACEMENT_ALLOW_PATH_TRAVERSAL” nie ma wartości „True”, rozwiązana ścieżka musi pozostać w katalogu wtyczki, w przeciwnym razie wyszukiwanie zostanie odrzucone.
Niezależnie od powyższego, dowolna wyznaczona ścieżka rozpoczynająca się od wpisu w
FILE4REPLACEMENT_DENY_PREFIXESjest zawsze odrzucany.Jeśli plik istnieje, zwracana jest jego usunięta zawartość. W przeciwnym razie oryginalny ciąg „zastępczy” jest zwracany bez zmian.
4. Uwagi dotyczące bezpieczeństwa¶
Włącz
FILE4REPLACEMENT_ALLOW_PATH_TRAVERSALtylko wtedy, gdy rozumiesz implikacje: pozwala każdemu użytkownikowi, który może edytować plikFUZZY_MAP_pre(np. za pośrednictwem edytora map online), aby odczytać dowolne pliki, które może wykonać proces Aura dostęp i wyświetlanie ich zawartości jako tekstu wyjściowego na żywo.FILE4REPLACEMENT_DENY_PREFIXESzapewnia podstawową ochronę przed wspólne katalogi systemowe, nawet jeśli dozwolone jest przechodzenie ścieżek, ale tak jest nie zastępuje przede wszystkim ograniczania tego, kto może edytować pliki map.Pliki odniesienia są zwykłym tekstem na dysku. Połącz z plikiem swojego systemu operacyjnego uprawnienia, jeśli treść jest poufna.
5. Przykład¶
Zobacz config/maps/plugins/TEST_FILE4REPLACEMENT/, aby zapoznać się z działającą przykładową wtyczką,
i tools/tests/TEST_FILE4REPLACEMENT.sh dla skryptu testowego, który ćwiczy
zarówno wyszukiwanie w katalogu, jak i wyszukiwanie poza katalogiem wtyczki.
KOD_BLOKU_2
Następnie utwórz plik .Zebra.txt obok tego pliku z żądanym tekstem zastępczym powiedz (lub wpisz przez konsolę) „Zebra”, aby ją uruchomić.