Lua:
Wysyłanie zapytania http z podstawową autoryzacją
How to: (Jak to zrobić:)
local http = require("socket.http")
local ltn12 = require("ltn12")
local mime = require("mime")
-- Kodowanie danych logowania
local username = "jan_kowalski"
local password = "bezpieczneHaslo123"
local auth = "Basic " .. mime.b64(username .. ":" .. password)
-- Przygotowanie żądania
local response_body = {}
local request_body = "param=value"
local res, code, response_headers = http.request{
url = "http://example.com/api/resource",
method = "POST",
headers = {
["Authorization"] = auth,
["Content-Type"] = "application/x-www-form-urlencoded",
["Content-Length"] = tostring(#request_body)
},
source = ltn12.source.string(request_body),
sink = ltn12.sink.table(response_body)
}
-- Wyświetlenie odpowiedzi
if res then
print("Odpowiedź serwera:", table.concat(response_body))
else
print("Błąd:", code)
end
Sample output:
Odpowiedź serwera: {"status": "success"}
Deep Dive (Dogłębna analiza)
Wysyłanie żądania HTTP z uwierzytelnianiem podstawowym nie jest nowością. Wczesne przeglądarki internetowe już to obsługiwały. Alternatywą dla Basic Authentication jest OAuth, Token Auth czy inne mechanizmy, które mogą oferować większe bezpieczeństwo. Do uwierzytelniania podstawowego używa się zakodowanego w Base64 łańcucha znaków zawierającego login i hasło rozdzielone dwukropkiem, dołączane do nagłówków żądania. Choć łatwe w implementacji, metoda ta jest mniej bezpieczna niż bardziej zaawansowane formy autoryzacji, gdyż może być podatna na ataki typu man-in-the-middle oraz nie zapewnia szyfrowania danych logowania.
See Also (Zobacz również)
- LuaSec – biblioteka do bezpiecznych połączeń SSL dla Lua.
- RFC 7617 - The ‘Basic’ HTTP Authentication Scheme – dokumentacja techniczna opisująca standard uwierzytelniania podstawowego.