שאלה האם אתה יכול להעביר משתמש / pass עבור אימות HTTP בסיסי בפרמטרים של כתובת אתר?


אני מאמין שזה לא אפשרי, אבל מישהו שאני מכיר התעקש שזה עובד. אני אפילו לא יודע מה הפרמטרים לנסות, ואני לא מצאתי את זה מתועד בכל מקום.

ניסיתי http://myserver.com/~user=username&password=mypassword אבל זה לא עובד.

האם אתה יכול לאשר כי זה לא באמת אפשרי להעביר את המשתמש / לעבור באמצעות פרמטרים HTTP (GET או POST)?


124
2018-03-21 11:16




משתמש: pass@example.com - Smudge
@sam - מה? כיצד תיראה כתובת האתר המלאה? - ripper234
הכל במפרט ietf.org/rfc/rfc1738.txt (3.1) - Smudge
@sam - סליחה, אני פשוט לא הצליח לנתח את ההערה שלך מסיבה כלשהי. - ripper234


תשובות:


זה בהחלט לא ניתן להעביר את שם המשתמש והסיסמה באמצעות פרמטרים שאילתה ב- HTTP רגיל. במקום זאת, אתה משתמש בפורמט כתובת אתר מיוחד, כך: http://username:password@example.com/ - זה שולח את האישורים ב HTTP הרשאה "הרשאה" הכותרת.

ייתכן כי מי שאתה מדבר היה לחשוב על מודול או קוד מותאם אישית אשר הביט פרמטרים שאילתה ואימת את האישורים. זה לא תקן HTTP auth, אם כי, זה דבר ספציפי יישום.


167
2018-03-21 11:38



תודה, זה בדיוק מה שחיפשתי ... זה לא קריטי כי זה לקבל פרמטרים, רק כי אני יכול לעצב אותו לתוך כתובת האתר. - ripper234
לידיעתך, http://username:password@example.com הפורמט כבר לא נתמך על ידי אחד IE או Chrome, לא יהיה מופתע אם אחרים בעקבותיו אם הם לא כבר. - T.J. Crowder
למעשה עובד בסדר ב- Chrome. רק IE הוא להיות פרחח מפונק. - Damien Overeem ツ
@DamienOvereem מה הגירסה של כרום לך? אני על MAC OS X 37 וזה לא נראה לעבוד בשבילי - Chris DaMour
מאז נודע לי ש- Chrome השבית אותו למשך זמן מה, אך הפעיל מחדש את התכונה הזו מאוחר יותר. למדתי גם כי ספארי יהיה לזרוק שגיאות התחזות כאשר רץ לתוך סוגים אלה של קישורים .. ביסודו של דבר הזמן מבוסס על HTTP אימות מעל .. - Damien Overeem ツ


http: // username: password@example.com יעבוד עבור FireFox, כרום, ספארי אבל לא עבור IE.

Microsoft Knowledge Base


16
2018-01-23 10:50



יכולת זו הוסרה מ- Chrome 19+. ראה code.google.com/p/chromium/issues/detail?id=123150 - Moshe Katz
לפי הקריאה של דוח באגים זה, הוא הוסיף בחזרה Chrome 20. בהחלט, אני מצפה לראות הרבה המשיך להתלונן על זה אם זה לא היה. - womble♦
ביקשתי אותו כעת עבור Internet Explorer: connect.microsoft.com/IE/feedback/details/873575/.... מעט שונה לשימוש מקרה, אבל כתובות באותה בעיה;) - SimonSimCity
@Diago אם הסיסמה מכילה '@' אז זה לא עובד. זה נותן שגיאה קטלנית, מישהו יכול להגיד לי איך אנחנו יכולים לתת שם משתמש וסיסמה בבת אחת - Ashish Jain
הייתי מנסה לברוח @ בסיסמה %40. (אני לא יודע אם זה עובד, אם כי, וזה עשוי להיות תלוי בשרת או דפדפן / שרת שילוב.) - David Moles


מעבר לפרמטרים של אימות בסיסי בכתובת האתר לא מומלץ

יש שדה כותרת הרשאה למטרה זו לבדוק אותו כאן: רשימת header http

איך להשתמש בו כתוב כאן: אימות גישה בסיסית

שם אתה יכול גם לקרוא את זה למרות שהוא עדיין נתמך על ידי כמה דפדפנים את הפתרון המוצע של הוספת אישורי הסמכה בסיסית בכתובת האתר לא מומלץ.

קרא גם פרק 4.1 ב - RFC 2617 - אימות HTTP לקבלת פרטים נוספים על מדוע לא להשתמש באימות בסיסי.


העברת פרמטרים לאימות במחרוזת שאילתה

בעת שימוש בשירות OAuth או בשירותי אימות אחרים, לעתים קרובות אתה שולח גם את אסימון הגישה שלך במחרוזת שאילתה במקום בכותרת הרשאה, כך למשל:

GET https://www.example.com/api/v1/users/1?access_token=1234567890abcdefghijklmnopqrstuvwxyzABCD

14
2017-09-24 07:55



וכיצד מתבצע קידוד של כותרת הרשאה לכתובת אתר? - womble♦
האם לא שהטופס שאמרת היה עכשיו מופרך? - womble♦
השאלה שענית עם "יש שדה כותרת הרשאה למטרה זו" היה שואל איך לשים פרמטרים אימות לתוך הכתובת. אם אינך יכול לקודד שדות כותרת HTTP לכתובת אתר (שאינך יכול), תשובתך היא ללא רישום. - womble♦
האם אתה יכול לציין באיזה תקן URI כתוב שהפרמטרים לאימות בסיסי בסימון URI הוצאו משימוש? RFC 2396 רק אומר שזה "לא מומלץ" כי פרטי האימות בטקסט רגיל הוא, בנסיבות רבות, לא רעיון טוב (אשר אני מסכים), בעוד RFC 7235 לא מזכיר כלום. בשום מקום במפרטים שאני יכול לחפש אומר שזה הוצא משימוש. - Lie Ryan
@Wilt: אני צריך להתנצל, אתה אכן נכון. הרמז שלך כי המפרט "השתנה" הניע אותי לחקור עוד יותר (RFC לעולם לא ישתנה לאחר שפורסם / ממוספר). אני פשוט נמצא כי RFC 2396 יש למעשה הוחלף על ידי RFC 3986, אשר לא הצלחתי למצוא קודם לכן. RFC 3986 מזכיר את פירוק שם המשתמש: תחביר סיסמה: Use of the format "user:password" in the userinfo field is deprecated. - Lie Ryan


זה (כמובן) ניתן לשלוח כל מחרוזת בפרמטרים GET, אם כי לא מומלץ לשלוח כניסה וסיסמה כפי יכול לעשות את זה מאוד גלוי, במיוחד אם זה לא בבקשת AJAX.

עם זאת, אתה צריך אז קוד את דף השרת כדי לחלץ את הכניסה ואת הסיסמה ולאחר מכן לאמת ולהשתמש בהם בכל דרך נדרשת.


0
2017-09-11 08:22