EL servei
El protocol HTTP #
- HTTP (Hyper Text Transfer Protocol)
- Protocol client-servidor
- El client fa una petició HTTP Request
- El servidor emet una resposta HTTP Response
sequenceDiagram
participant Client
participant Servidor
Note right of Client: port random (>5000)
Client-->>Servidor: HTTP_REQUEST
Servidor-->>Client: HTTP_RESPONSE
Note right of Servidor: well know port (80/443)
Protocol HTTPS #
- HTTP + TLS
- Implementa un sistema hybrid d'intercanvi de claus de sessió simètriques mitjançant un sistema asimètric de clau publica i privada sobre certificats TLS firmats a través d'una jearquia d'autoritats de certificació
Headers i cookies #
- El protocol HTTP és un protocol sense estat
- Per a poder mantenir sessions s'utilitzen cookies enviades a través de les capçaleres HTTP
- Simulació del manteniment de sessió mitjançant cookies
sequenceDiagram
participant Client
participant Servidor
Client-->>Servidor: GET http://rogerdocs.cat
Servidor-->>Client: HTTP 200 Set-cookie id-session:1
Client-->>Servidor: GET http://rogerdocs.cat/productes.php cookie: id-session:1
- Les cookies poden tenir
- Paràmetre amb un valor : això és el que vol gestionar el programador
- Expires=data o max-age:temps: poden incluir una data de finalització o no. Si no la inclueix són cookies permanents. Si s'inclou estarem creant un sistema per gestionar la sessió
- Domini: domini sobre el que aplica la cookie
- Path: path dintre del domini on s'aplica la cookie
- Altres paràmetres de seguretat
Paràmetres de seguretat a cookies #
àmbit #
- Domain i path ja es poden veure com un primer punt de seguretat
Samesite= #
- SamesiteStrict=> El navegador per enviar la cookie ha de coincidir domini, port i protocol
- Lax: S'enviarà la cookie si es fa mitjançant la intevernció humana (apretar un enllaç per exemple) i la petició és tipus GET
- None: Sense control
HTTPONLY #
- No es pot accedir a la coookie via javascript
Secure #
- Només serà enviada via HTTPS
Capçaleres de seguretat Cross Origin #
- Cross origin és quan una pàgina demana recursos d'un altre origen (domini, port i/o protocol) com per exemple css, javascript, imatges, fonts-api
- En quant es produeix el navegador comprova les capçaleres
- A) El client carrega l'HTML aquest demana un recurs de la SITE2 fent una petició on s'inclo la capçalera origin el server2 té implementat Acces-control-Allow-Origin amb valors '*' o la site origen permesa ( https://rogerdocs.cat)
- També es poden utilitzar capçaleres personalitzades. La site origen hauria d'enviar una capçalera concreta i la propietaria del recurs permetre mitjançant Access-control-allow-headers:capçalera