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