Це небезпечно, тому що cURL за замовчуванням для базової аутентифікації де протокол HTTP передає ваш пароль в прозорий текст. Коли ви вкажете username:password
рядок, він перетворюється в a BASE64 рядок у заголовку HTTP:
GET / HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Будь-хто, хто може перехопити ваш трафік HTTP (ваш провайдер, хто має доступ до тієї ж бездротової точки доступу, що і ви, тощо), зможуть відновити пароль, просто використовуючи онлайн конвертер BASE64 .
Протокол HTTPS покращить ситуацію шляхом встановлення зашифрованого з'єднання, перш ніж надсилати цей заголовок, запобігаючи виявленню пароля. Однак, це застосовується лише у випадку, якщо користувач звертає увагу на запит підтвердження невідомих сертифікатів, авторизації винятків безпеки тощо.
Зверніть увагу, що аргументи команд можуть бути доступні для інших користувачів на одній машині для перегляду, наприклад, ps -ef
, / proc файлової системи, у вас історія bash, і у вашому терміналі log (спасибі за @ @ Lambert коментар, зазначивши це). cURL на деяких платформах намагається приховати пароль, наприклад, з ps -ef
ймовірно, замість пароля ви побачите пробіл. Однак, замість того, щоб передавати пароль як аргумент командного рядка, краще, як було обговорено на cURL faq .