שליחת בקשת HTTP עם אימות בסיסי

Bash:
שליחת בקשת HTTP עם אימות בסיסי

איך לעשות:

שליחת בקשה ישירות מה-terminal באמצעות curl עם שם משתמש וסיסמה:

curl -u username:password http://example.com

הצפנת הסיסמה עם Base64 והכנסתה לבקשה עם Header מותאם:

ENCODED=$(echo -n 'username:password' | base64)
curl -H "Authorization: Basic $ENCODED" http://example.com

דוגמא לפלט שעשוי להופיע לאחר בקשת HTTP מוצלחת:

<html>
<head><title>An Example Page</title></head>
<body>
<p>Welcome to our website!</p>
</body>
</html>

טבילה עמוקה

שיטת האימות הבסיסי עברה הרבה מחזורי חיים מאז התחלת האינטרנט. היא פשוטה ונפוצה אך לא הכי מאובטחת בהשוואה לתקנים חדשים כמו OAuth. ברמת המימוש, השם והסיסמה מועברים ב-Header של הבקשה אחרי הצפנה עם Base64. זכרו, Base64 אינו הצפנה בטוחה; הוא רק קידוד. לכן, תמיד משתמשים ב-SSL/TLS בשילוב עם בקשה מוצפנת כדי לשמור על בטיחות הנתונים.

ראה גם:

  1. cURL Documentation
  2. RFC 7617: The ‘Basic’ HTTP Authentication Scheme
  3. Mozilla Developer Network - HTTP authentication
  4. Base64 Encoding