﻿1
00:00:01,210 --> 00:00:04,340
‫Narator: Selamat datang di video terakhir dari bagian ini.

2
00:00:04,340 --> 00:00:05,610
‫Dan dalam

3
00:00:05,610 --> 00:00:07,880
‫hal ini, kita akan mencegah

4
00:00:07,880 --> 00:00:10,593
‫polusi parameter, menggunakan paket NPM lainnya.

5
00:00:12,270 --> 00:00:15,400
‫Tetapi sebelum menginstal paket itu, mari

6
00:00:15,400 --> 00:00:17,780
‫kita lihat kesalahannya.

7
00:00:17,780 --> 00:00:20,820
‫Tetapi sebelum melakukan itu, mari kita menuju ke Postman

8
00:00:20,820 --> 00:00:22,290
‫dan melihat mengapa

9
00:00:22,290 --> 00:00:25,363
‫kita sebenarnya perlu mencegah polusi parameter di tempat pertama.

10
00:00:27,410 --> 00:00:30,993
‫Jadi, pertama-tama, kita harus login.

11
00:00:32,240 --> 00:00:35,590
‫Oke, jadi, dengan pengguna ini dan kata sandi ini.

12
00:00:35,590 --> 00:00:39,290
‫Jadi sekarang kita bisa menggunakan rute Get All Tours.

13
00:00:39,290 --> 00:00:41,570
‫Baiklah, jadi yang akan saya lakukan

14
00:00:41,570 --> 00:00:45,140
‫sekarang di sini adalah menambahkan beberapa parameter ke string kueri.

15
00:00:45,140 --> 00:00:49,443
‫Jadi mari kita lihat, saya ingin mengurutkan berdasarkan durasi,

16
00:00:52,830 --> 00:00:57,233
‫dan pada saat yang sama, saya juga ingin mengurutkan berdasarkan harga.

17
00:00:58,110 --> 00:01:01,140
‫Dan itu sebenarnya tidak masuk akal

18
00:01:01,140 --> 00:01:05,100
‫karena kami siap hanya memiliki satu parameter pengurutan.

19
00:01:05,100 --> 00:01:08,310
‫Jadi mari kita lihat apa yang sebenarnya kita dapatkan dengan ini.

20
00:01:08,310 --> 00:01:11,849
‫Dan memang kami mendapatkan kesalahan yang mengatakan bahwa ini. string kueri. menyortir. pemisahan bukan fungsi.

21
00:01:11,849 --> 00:01:15,890
‫Dan itulah yang terjadi di apiFeatures. js di baris 23.

22
00:01:15,890 --> 00:01:20,890
‫Jadi mari kita buka itu dan di sini, pada baris 23 adalah

23
00:01:22,550 --> 00:01:23,800
‫di mana kesalahan itu terjadi.

24
00:01:26,560 --> 00:01:31,560
‫Jadi itu mencoba untuk membagi properti sort di sini,

25
00:01:32,520 --> 00:01:35,710
‫yang kami harapkan menjadi string.

26
00:01:35,710 --> 00:01:37,930
‫Tapi sekarang karena kita mendefinisikannya dua

27
00:01:37,930 --> 00:01:41,110
‫kali, jadi urutkan sekali lalu urutkan dua kali, express

28
00:01:41,110 --> 00:01:44,510
‫sebenarnya akan membuat array dengan dua nilai ini, durasi dan harga.

29
00:01:44,510 --> 00:01:48,423
‫Biarkan saya benar-benar menunjukkan itu kepada Anda.

30
00:01:49,610 --> 00:01:51,713
‫Menghibur. catatan.

31
00:01:54,320 --> 00:01:55,800
‫Sekarang saya menyalinnya.

32
00:01:55,800 --> 00:01:57,053
‫Oke, coba lagi.

33
00:02:01,660 --> 00:02:03,323
‫Inilah kesalahan yang sama dan

34
00:02:04,210 --> 00:02:07,490
‫seperti yang saya katakan itu sebenarnya adalah array dengan durasi dan harga.

35
00:02:07,490 --> 00:02:10,540
‫Dan tentu saja, kita tidak bisa membagi karena split

36
00:02:10,540 --> 00:02:12,520
‫hanya bekerja pada string, oke?

37
00:02:12,520 --> 00:02:16,370
‫Jadi ini adalah masalah umum yang

38
00:02:16,370 --> 00:02:19,850
‫kemudian dapat dimanfaatkan oleh penyerang.

39
00:02:19,850 --> 00:02:21,920
‫Baiklah, dan pada dasarnya kita sekarang

40
00:02:21,920 --> 00:02:24,480
‫akan menggunakan middleware yang hanya akan menghapus

41
00:02:24,480 --> 00:02:26,290
‫bidang duplikat ini, oke?

42
00:02:26,290 --> 00:02:30,930
‫Dan yang itu, mari kita instal.

43
00:02:30,930 --> 00:02:33,470
‫Ini disebut HPP

44
00:02:33,470 --> 00:02:38,200
‫yang merupakan singkatan dari HTTP Parameter Polusi.

45
00:02:38,200 --> 00:02:40,393
‫Baiklah.

46
00:02:42,080 --> 00:02:42,913
‫Ayo cepat membutuhkannya disini.

47
00:02:45,700 --> 00:02:47,883
‫Baiklah, jadi, ini satu lagi yang sangat sederhana.

48
00:02:55,810 --> 00:03:00,550
‫Yang perlu kita lakukan hanyalah aplikasi. gunakan dan kemudian hubungi HPP.

49
00:03:00,550 --> 00:03:05,263
‫Jadi, cegah polusi parameter.

50
00:03:06,710 --> 00:03:10,750
‫Dan yang ini lagi harus digunakan di sini pada

51
00:03:12,750 --> 00:03:15,910
‫akhirnya, oke, karena yang dilakukannya adalah

52
00:03:15,910 --> 00:03:18,120
‫membersihkan string kueri, oke?

53
00:03:18,120 --> 00:03:20,470
‫Jadi mari kita coba lagi.

54
00:03:20,470 --> 00:03:22,003
‫Butuh sedikit waktu, dan ini dia.

55
00:03:24,050 --> 00:03:26,690
‫Jadi kesalahannya hilang dan sekarang hanya

56
00:03:26,690 --> 00:03:28,080
‫menggunakan yang terakhir.

57
00:03:28,080 --> 00:03:31,120
‫Jadi ini mengurutkan harga saya sekarang

58
00:03:31,120 --> 00:03:34,930
‫dan memang kita mulai dengan yang terendah dan

59
00:03:34,930 --> 00:03:38,760
‫kemudian naik 497, sampai ke yang paling mahal

60
00:03:38,760 --> 00:03:40,860
‫dari hampir 3000, oke?

61
00:03:40,860 --> 00:03:44,423
‫Jadi itu agak diperbaiki tetapi kami sebenarnya menginginkan beberapa properti

62
00:03:45,380 --> 00:03:48,260
‫atau bidang duplikat dalam beberapa kasus, bukan?

63
00:03:48,260 --> 00:03:52,800
‫Misalnya kita mungkin ingin mencari wisata dengan

64
00:03:52,800 --> 00:03:55,690
‫durasi sembilan dan lima.

65
00:03:55,690 --> 00:03:57,913
‫Jadi ingat bahwa di API kita,

66
00:04:01,690 --> 00:04:04,960
‫kita bisa melakukan ini, jadi durasinya sama dengan lima, dan

67
00:04:04,960 --> 00:04:08,283
‫kita bisa mengatakan, pada saat yang sama, durasi sembilan, oke?

68
00:04:09,670 --> 00:04:13,980
‫Dan kami ingin ini benar-benar berfungsi tetapi saat ini tidak.

69
00:04:13,980 --> 00:04:17,740
‫Itu hanya menemukan tur dengan sembilan hari, kan?

70
00:04:17,740 --> 00:04:22,010
‫Tetapi jika kita tidak, atau middleware HPP.

71
00:04:22,010 --> 00:04:24,823
‫Jadi mari kita nonaktifkan.

72
00:04:26,000 --> 00:04:28,253
‫Jadi jika kita tidak mengaktifkannya, maka kita

73
00:04:29,130 --> 00:04:31,130
‫akan menemukan tiga tur, satu dengan

74
00:04:31,130 --> 00:04:35,130
‫durasi lima, lalu di sini dengan durasi sembilan dan di sini satu

75
00:04:35,130 --> 00:04:37,000
‫lagi dengan durasi lima.

76
00:04:37,000 --> 00:04:39,300
‫Oke, dan dalam hal ini, ini

77
00:04:39,300 --> 00:04:40,930
‫sebenarnya perilaku yang diharapkan.

78
00:04:40,930 --> 00:04:43,890
‫Jadi apa yang dapat kita lakukan agar dapat

79
00:04:43,890 --> 00:04:45,800
‫menggunakan middleware tetapi tetap mendapatkan

80
00:04:45,800 --> 00:04:48,463
‫hasil yang kita harapkan di sini, dengan

81
00:04:48,463 --> 00:04:51,670
‫durasi, kita dapat membuat daftar putih beberapa parameter, oke?

82
00:04:51,670 --> 00:04:55,770
‫Jadi ke dalam fungsi HPP ini, kita bisa sekali

83
00:04:55,770 --> 00:05:00,770
‫lagi melewati sebuah objek dan kemudian di sana, tentukan daftar putihnya, oke?

84
00:05:01,050 --> 00:05:05,543
‫Dan daftar putih hanyalah sebuah larik properti yang

85
00:05:06,560 --> 00:05:10,690
‫sebenarnya kami izinkan duplikatnya dalam string kueri.

86
00:05:10,690 --> 00:05:14,213
‫Oke?

87
00:05:15,990 --> 00:05:16,823
‫Dan untuk durasi tentu saja salah satunya, oke?

88
00:05:16,823 --> 00:05:20,943
‫Jadi, mari kita coba lagi.

89
00:05:22,070 --> 00:05:23,543
‫Jadi, saat ini kami masih mendapatkan tiga hasil seperti sebelumnya.

90
00:05:26,292 --> 00:05:30,890
‫Tetapi jika kita mencobanya dengan sort, dan mari kita

91
00:05:30,890 --> 00:05:33,480
‫buat tab baru di sini.

92
00:05:33,480 --> 00:05:35,483
‫Jadi jika kita mencobanya dengan pengurutan

93
00:05:40,990 --> 00:05:43,453
‫ganda ini, maka kita juga seharusnya tidak mendapatkan kesalahan.

94
00:05:44,350 --> 00:05:46,730
‫Nah sekarang belum login, jadi mari kita ambil

95
00:05:46,730 --> 00:05:48,183
‫token error kita disini.

96
00:05:49,295 --> 00:05:54,295
‫Coba itu lagi.

97
00:05:54,400 --> 00:05:55,650
‫Dan sekarang memang berfungsi, kami tidak mendapatkan kesalahan.

98
00:05:55,650 --> 00:05:58,870
‫Dan agar middleware HPP melakukan tugasnya.

99
00:05:58,870 --> 00:06:02,713
‫Baiklah?

100
00:06:04,100 --> 00:06:05,680
‫Tutup juga yang

101
00:06:05,680 --> 00:06:09,110
‫ini, dan sekarang kita juga harus menentukan beberapa

102
00:06:09,110 --> 00:06:12,450
‫bidang lain di daftar putih kita, karena misalnya

103
00:06:12,450 --> 00:06:16,250
‫kita ingin mencari yang ini juga, atau kuantitas peringkat.

104
00:06:16,250 --> 00:06:18,130
‫Jadi mari kita salin semuanya di sini ke dalam daftar putih kita.

105
00:06:18,130 --> 00:06:21,863
‫Jadi rata-rata juga.

106
00:06:28,940 --> 00:06:30,423
‫Kemudian juga durasi

107
00:06:35,210 --> 00:06:38,700
‫yang sudah kita miliki, dan katakanlah ukuran grup maksimal.

108
00:06:38,700 --> 00:06:40,403
‫Kita mungkin juga menginginkan kesulitan.

109
00:06:46,680 --> 00:06:48,983
‫Dan juga harganya.

110
00:06:54,920 --> 00:06:56,070
‫Dan saya pikir itu sudah cukup.

111
00:06:56,070 --> 00:06:58,773
‫Baiklah.

112
00:07:03,370 --> 00:07:04,223
‫Dan mungkin

113
00:07:05,950 --> 00:07:09,540
‫agak aneh untuk secara manual meletakkan semua nama bidang di sini dan nanti

114
00:07:09,540 --> 00:07:12,350
‫kita mungkin harus melakukan hal yang sama untuk sumber daya

115
00:07:12,350 --> 00:07:15,410
‫lainnya, dan itu akan membuat daftar putih ini lebih besar, bukan?

116
00:07:15,410 --> 00:07:19,010
‫Dan tentu saja kita bisa melakukan beberapa hal rumit di

117
00:07:19,010 --> 00:07:21,860
‫sini untuk mendapatkan nama bidang ini dari model

118
00:07:21,860 --> 00:07:23,930
‫itu sendiri, tapi sekali lagi,

119
00:07:23,930 --> 00:07:26,690
‫saya hanya ingin membuatnya sederhana di sini, oke?

120
00:07:26,690 --> 00:07:28,980
‫Jadi saya hanya mendefinisikan nama bidang

121
00:07:28,980 --> 00:07:32,160
‫ini secara manual di sini dan kemudian menyebutnya sehari, oke?

122
00:07:32,160 --> 00:07:34,900
‫Oke, dan itu sebenarnya

123
00:07:34,900 --> 00:07:38,620
‫membungkus bagian otentikasi, otorisasi, dan keamanan kami.

124
00:07:38,620 --> 00:07:41,590
‫Dan jika Anda ingin bersenang-senang dengannya, tentu saja,

125
00:07:41,590 --> 00:07:44,620
‫Anda dapat mencoba menerapkan beberapa hal yang saya

126
00:07:44,620 --> 00:07:46,730
‫sarankan dalam video ringkasan yang saya

127
00:07:46,730 --> 00:07:49,213
‫tunjukkan sebelumnya dengan slide itu dengan semua

128
00:07:49,213 --> 00:07:51,260
‫langkah keamanan berbeda yang telah

129
00:07:51,260 --> 00:07:53,160
‫kami terapkan dan beberapa

130
00:07:53,160 --> 00:07:55,530
‫di antaranya saya suruh Anda bereksperimen.

131
00:07:55,530 --> 00:07:57,970
‫Jadi jangan ragu untuk melakukannya, atau jika

132
00:07:57,970 --> 00:08:00,700
‫tidak, mari kita bersama-sama beralih ke bagian berikutnya

133
00:08:00,700 --> 00:08:04,330
‫yang akan menjadi bagian yang sangat menarik lagi karena kita

134
00:08:04,330 --> 00:08:06,750
‫akan benar-benar mulai membuat model

135
00:08:06,750 --> 00:08:09,800
‫data dan mempelajari beberapa hal MongoDB yang lebih canggih.

136
00:08:09,800 --> 00:08:12,920
‫Jadi saya tidak sabar untuk melihat Anda di sana.

