Filtrowanie danych wpisywanych w przez użytkownika w shellu

Odpowiedz Nowy wątek
2013-02-23 15:32
Moderator

Rejestracja: 13 lat temu

Ostatnio: 4 tygodnie temu

Lokalizacja: Rzeszów

0

Nie znam się jakoś wybitnie na linuksie, w Win niby więcej ogarnę jeżeli chodzi o okienko cmd i skrypty batch, stąd moja prośba o pomoc.
Otóż piszę aplikację (jako, że język nie ma znaczenia - wrzuciłem w Inne), która przyjmuje dane od użytkownika, konkretniej - adres URL, a następnie wrzuca to w polecenie shellowe tj:
aplikacja -p -a -r TUTAJ_LINK jakisplik.log
Jak przefiltrować dane od użytkownika, żeby na pewno nie wpadło tu nic psującego całą komendę, bądź, co gorsza, uruchamiać jakąś drugą. Odpada spacja na pewno, ale co jeszcze, tj, chodzi mi o znaki typu > & i podobne (chyba, że one koniecznie muszą wystąpić po spacji, bo nie zadziałają bez poprzedzającej spacji?). Jak je escapeować? zmieniać na wartości z procentem (tj. spacje na %20 itd)?
Czy jest coś co powinienem filtrować na Linuksie, a nie powinienem na Win (albo odwrotnie)?


Pozostało 580 znaków

2013-02-23 18:18
Moderator

Rejestracja: 16 lat temu

Ostatnio: 5 godzin temu

0

Nie bardzo rozumiem problem. Daj " " dookoła tego linka i tyle.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2013-02-23 18:40
Moderator

Rejestracja: 13 lat temu

Ostatnio: 4 tygodnie temu

Lokalizacja: Rzeszów

0

w sumie. gdyby użytkownik podał cudzysłów to zamienię na %22 (jak i część innych znaków) i powinno wystarczyć. nie da się żadnym innym znakiem "zerwać" polecenia wtedy?


Pozostało 580 znaków

2013-02-23 19:24
Moderator

Rejestracja: 12 lat temu

Ostatnio: 11 minut temu

0

Nie za najlepsze jest odpalanie przy pomocy jakiegokolwiek polecenia z rodziny system jeśli to będzie inne polecenie (np. execv), to najczęściej można do niego przekazać tablicę argumentów, a wtedy nie ma możliwości zmiany samego polecenia.


Pozostało 580 znaków

2013-02-23 19:37

Rejestracja: 12 lat temu

Ostatnio: 47 sekund temu

0

tu masz opis jak w bash'u działają apostrofy i cudzysłowia
Bez stosowania apostrofów i cudzysłowów od specjalnego znaczenia pojedynczych znaków można uciec stosując "\".


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
Jeśli zastosuje apostrofy to nic mu nie grozi, musiał by użyć składni $'...'. Dopiero wtedy to działa http://unix.stackexchange.com/a/65819/13194 - hauleth 2013-02-23 20:21

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0