﻿1
00:00:00,191 --> 00:00:02,870
‫-: In questa lezione impareremo molto rapidamente

2
00:00:02,870 --> 00:00:07,210
‫come testare le connessioni https sicure, con un Heroku, perché

3
00:00:07,210 --> 00:00:08,730
‫in realtà ne

4
00:00:08,730 --> 00:00:11,041
‫abbiamo bisogno, a un certo

5
00:00:11,041 --> 00:00:12,983
‫punto, nella nostra applicazione.

6
00:00:14,540 --> 00:00:18,560
‫Quindi, andiamo qui al nostro controller di autenticazione.

7
00:00:18,560 --> 00:00:21,060
‫E proprio qui in alto,

8
00:00:21,060 --> 00:00:24,049
‫in questa funzione di creazione del token

9
00:00:24,049 --> 00:00:26,840
‫inviato, ecco il punto in cui

10
00:00:26,840 --> 00:00:30,240
‫impostiamo il cookie web adiacente per proteggere, se

11
00:00:30,240 --> 00:00:32,343
‫siamo attualmente in produzione.

12
00:00:33,300 --> 00:00:34,661
‫Ricordati che.

13
00:00:34,661 --> 00:00:37,630
‫Quindi, ricorda che abbiamo creato questa

14
00:00:37,630 --> 00:00:39,270
‫funzione con risposta

15
00:00:39,270 --> 00:00:41,255
‫adiacente, invia anche un

16
00:00:41,255 --> 00:00:44,670
‫cookie, che contiene anche il token web adiacente.

17
00:00:44,670 --> 00:00:47,090
‫E quel cookie ha un paio di opzioni.

18
00:00:47,090 --> 00:00:49,260
‫Il primo, quando scade.

19
00:00:49,260 --> 00:00:50,093
‫Il

20
00:00:50,093 --> 00:00:54,490
‫secondo, che è accessibile solo tramite http in pratica.

21
00:00:54,490 --> 00:00:56,570
‫E poi, quando siamo in

22
00:00:56,570 --> 00:00:59,344
‫produzione, abbiamo detto che questo cookie può essere

23
00:00:59,344 --> 00:01:01,480
‫inviato solo su una connessione sicura.

24
00:01:01,480 --> 00:01:04,770
‫Quindi, fondamentalmente, su una connessione https.

25
00:01:04,770 --> 00:01:05,810
‫Va bene.

26
00:01:05,810 --> 00:01:08,117
‫Ora, il problema è che

27
00:01:08,117 --> 00:01:10,810
‫in realtà, il fatto che siamo in

28
00:01:10,810 --> 00:01:14,370
‫produzione, non significa che la connessione sia effettivamente sicura.

29
00:01:14,370 --> 00:01:15,340
‫Destra?

30
00:01:15,340 --> 00:01:18,200
‫Perché ovviamente non tutte le

31
00:01:18,200 --> 00:01:21,470
‫applicazioni distribuite vengono impostate automaticamente su https.

32
00:01:21,470 --> 00:01:25,021
‫E quindi dobbiamo cambiarlo se ce l'abbiamo qui.

33
00:01:25,021 --> 00:01:25,892
‫Va bene.

34
00:01:25,892 --> 00:01:29,700
‫Ora, in realtà abbiamo una proprietà sicura che

35
00:01:29,700 --> 00:01:31,860
‫è su richiesta.

36
00:01:31,860 --> 00:01:33,682
‫E solo quando

37
00:01:33,682 --> 00:01:38,630
‫la connessione è sicura, questa richiesta dot secure è vera.

38
00:01:38,630 --> 00:01:39,463
‫Va bene?

39
00:01:39,463 --> 00:01:41,090
‫Ha senso, vero?

40
00:01:41,090 --> 00:01:43,790
‫Ora il problema è che in realtà in

41
00:01:43,790 --> 00:01:45,370
‫Heroku questo non funziona.

42
00:01:45,370 --> 00:01:47,107
‫E questo perché i

43
00:01:47,107 --> 00:01:52,107
‫proxy di Heroku, quindi fondamentalmente reindirizzano o modificano tutte le richieste in

44
00:01:52,290 --> 00:01:56,170
‫arrivo nella nostra applicazione prima che raggiungano effettivamente l'app.

45
00:01:56,170 --> 00:01:57,003
‫Va bene.

46
00:01:57,003 --> 00:02:00,682
‫Quindi, per farlo funzionare anche su Heroku, dobbiamo

47
00:02:00,682 --> 00:02:04,200
‫anche verificare se l'intestazione x forward proto

48
00:02:04,200 --> 00:02:06,952
‫è impostata su https.

49
00:02:06,952 --> 00:02:07,785
‫Va bene.

50
00:02:07,785 --> 00:02:09,204
‫Quindi, sembra un po'

51
00:02:09,204 --> 00:02:13,170
‫confuso, ma ancora una volta, questo è qualcosa che Heroku fa internamente.

52
00:02:13,170 --> 00:02:16,549
‫Quindi, testiamo qui se req. secure è

53
00:02:16,549 --> 00:02:21,549
‫true, o se req. intestazioni.

54
00:02:22,134 --> 00:02:27,134
‫E l'intestazione che stiamo cercando è x forwarded proto.

55
00:02:29,820 --> 00:02:33,830
‫E questa intestazione è impostata su https se siamo

56
00:02:33,830 --> 00:02:36,210
‫su una connessione sicura.

57
00:02:36,210 --> 00:02:37,050
‫Va bene?

58
00:02:37,050 --> 00:02:40,190
‫Quindi, questo è qualcosa di molto specifico di Heroku.

59
00:02:40,190 --> 00:02:43,870
‫Ed è per questo che l'ho lasciato qui per l'ultima sezione,

60
00:02:43,870 --> 00:02:46,113
‫dopo che abbiamo già distribuito l'applicazione.

61
00:02:46,950 --> 00:02:50,700
‫Quindi, se o req. secure è true, o

62
00:02:50,700 --> 00:02:55,150
‫se questa intestazione qui è impostata su https, allora vogliamo che

63
00:02:55,150 --> 00:02:58,660
‫le opzioni secure qui siano impostate su true.

64
00:02:58,660 --> 00:03:01,213
‫E, quindi, possiamo effettivamente rifattorizzarlo.

65
00:03:02,680 --> 00:03:04,500
‫Quindi, fondamentalmente possiamo prendere questo,

66
00:03:04,500 --> 00:03:06,180
‫perché questo sarà vero.

67
00:03:06,180 --> 00:03:08,186
‫E, quindi, dico che se

68
00:03:08,186 --> 00:03:10,860
‫questo è vero, allora diciamo uguale vero qui.

69
00:03:10,860 --> 00:03:12,041
‫Quindi, non ha senso.

70
00:03:12,041 --> 00:03:15,023
‫Possiamo invece semplicemente farlo così.

71
00:03:16,590 --> 00:03:18,110
‫Va bene?

72
00:03:18,110 --> 00:03:20,820
‫E, in realtà, possiamo andare anche oltre.

73
00:03:20,820 --> 00:03:23,883
‫E metti l'opzione sicura proprio qui.

74
00:03:25,350 --> 00:03:28,313
‫Allora, perché tenerlo fuori se possiamo metterlo qui?

75
00:03:29,150 --> 00:03:33,823
‫Quindi, sicuro è uguale a questo, ok?

76
00:03:35,550 --> 00:03:37,723
‫E poi non abbiamo più bisogno di questo.

77
00:03:38,910 --> 00:03:41,370
‫E, dal momento che stiamo effettuando

78
00:03:41,370 --> 00:03:46,173
‫il refactoring, in realtà non abbiamo più bisogno di questa variabile qui.

79
00:03:48,130 --> 00:03:50,946
‫Quindi mettiamolo qui, diamogli una cassaforte e

80
00:03:50,946 --> 00:03:53,520
‫c'è qualcosa che non va.

81
00:03:53,520 --> 00:03:55,950
‫Ok, e quindi, ora il problema

82
00:03:55,950 --> 00:03:59,190
‫è che attualmente non hai accesso alla richiesta

83
00:03:59,190 --> 00:04:00,680
‫in questa funzione.

84
00:04:00,680 --> 00:04:03,103
‫Ok, allora dobbiamo aggiungerlo qui.

85
00:04:04,050 --> 00:04:09,050
‫Richiedi e quindi ovunque abbiamo creato il token inviato, ovviamente

86
00:04:09,120 --> 00:04:11,693
‫dobbiamo passare la richiesta lì.

87
00:04:13,020 --> 00:04:14,063
‫Quindi, questo è qui.

88
00:04:17,000 --> 00:04:19,763
‫Quindi, usa il comando D per trovare il prossimo in pratica.

89
00:04:21,150 --> 00:04:22,353
‫Richiedi qui.

90
00:04:27,740 --> 00:04:31,193
‫E poi finalmente anche qui.

91
00:04:33,010 --> 00:04:36,352
‫Ok, quindi sembra molto più

92
00:04:36,352 --> 00:04:40,940
‫carino e dovrebbe anche funzionare molto meglio di prima.

93
00:04:40,940 --> 00:04:44,480
‫Tuttavia, in questo momento, questo non funzionerà ancora, perché c'è

94
00:04:44,480 --> 00:04:47,460
‫solo un'altra cosa che dobbiamo fare, che

95
00:04:47,460 --> 00:04:51,350
‫è fondamentalmente quella di rendere la nostra applicazione affidabile dei proxy.

96
00:04:51,350 --> 00:04:54,180
‫Quindi, ancora una volta, request dot secure

97
00:04:54,180 --> 00:04:57,550
‫non funziona in primo luogo perché Heroku funge da

98
00:04:57,550 --> 00:05:01,500
‫proxy, che tipo di reindirizzamento e modifica delle richieste in arrivo.

99
00:05:01,500 --> 00:05:04,819
‫E, quindi, dobbiamo andare all'app dot JS

100
00:05:04,819 --> 00:05:08,010
‫e poi subito dopo questo qui, ora

101
00:05:08,010 --> 00:05:10,640
‫ci fidiamo dei proxy.

102
00:05:10,640 --> 00:05:15,033
‫E lo facciamo dicendo app dot enable trust proxy.

103
00:05:20,680 --> 00:05:21,513
‫Va bene?

104
00:05:21,513 --> 00:05:24,498
‫Quindi, questo è qualcosa che è costruito per

105
00:05:24,498 --> 00:05:26,980
‫esprimere questo tipo di situazioni.

106
00:05:26,980 --> 00:05:27,813
‫Va bene?

107
00:05:27,813 --> 00:05:31,400
‫Quindi, solo se abbiamo impostato correttamente questa impostazione

108
00:05:31,400 --> 00:05:35,210
‫qui, questa intestazione qui sarà impostata correttamente e saremo

109
00:05:35,210 --> 00:05:38,483
‫in grado di leggerne il valore.

110
00:05:39,450 --> 00:05:40,410
‫Va bene?

111
00:05:40,410 --> 00:05:44,470
‫Quindi, questo è il modo in cui verifichi se una connessione è sicura o

112
00:05:44,470 --> 00:05:47,363
‫meno, quando la tua applicazione è distribuita su Heroku.

