Filtrowanie danych wpisywanych w przez użytkownika w shellu

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)?

0

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

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?

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.

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 "".

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