Aktywne Wpisy
![lubie_dzem_truskawkowy](https://wykop.pl/cdn/c3397992/lubie_dzem_truskawkowy_JguNju7j8I,q60.jpg)
![lubiedzemtruskawkowy - Ile lat macie konto i ile zaoszczędzili się na allegro smart?
...](https://wykop.pl/cdn/c3201142/94fa7012ac1d816b368401efef117fc7666ef8be3ab2aa453376c1998871de11,w150.png)
źródło: 1000004201
PobierzZawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Skopiuj link
Skopiuj linkźródło: 1000004201
PobierzTa treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Wykop.pl
W dzisiejszym odcinku #od0dopentestera zaczniemy od języka #python
Co złego może być w 2 linijkach:
imie = input("Twoje imie:")
print ("Witaj ", imie)
Funkcja
input
to tak naprawdęeval
połączony zraw_input(treść)
co można sprawdzić tutaj.Możliwe jest zatem wykonanie dowolnego kodu,
eval
służy bowiem do dynamicznego wykonywania treści.Dla przykładu wyświetlimy zawartość bieżącego katalogu.
Przekazywany przez nas ciąg znaków musi się zmieścić w 1 linijce tekstu.
Nie możemy zatem użyć
import os
a następnie wywołać funkcjisystem
.Skorzystamy z alternatywnej składni:
__import__('os')
Oczywiście to tylko przykład, używając tego schematu możemy wykonać dowolną funkcję z dowolnego modułu.
Jak zatem poprawić ten kod? Wystarczy zamienić
input
naraw_input
.Co ciekawe kod ten zadziała jedynie w Python 2.
#programowanie #informatyka #webdev
źródło: comment_fWU2Lh41A4Ku314jTdKfB45P9OoNbjW6.jpg
Pobierzinput
w Pythonie.@Razi91 rzeczywiście ciężko znaleźć jakieś praktyczne zastosowanie w dzisiejszych czasach
Tym przykładem chciałem pokazać jak ważne jest nazewnictwo.
Funkcja nie nazywa się bowiem
eval_input
więc większość osób założy, że po prostu zwraca tekst.Nie mam zielonego pojecia co tam napisales