1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:10,300 >> LUCIANO ARANGO: OK, guys. 3 00:00:10,300 --> 00:00:11,550 Nama saya adalah Luciano Arango. 4 00:00:11,550 --> 00:00:13,915 Saya seorang mahasiswa di Adams House. 5 00:00:13,915 --> 00:00:17,550 Dan kita akan berbicara tentang pertahanan aktif keamanan web. 6 00:00:17,550 --> 00:00:24,220 Jadi saya bekerja untuk Kantor Informasi Keamanan di LAUT. 7 00:00:24,220 --> 00:00:28,670 Dan selama musim panas, saya magang di SeguraTec, yang merupakan informasi 8 00:00:28,670 --> 00:00:31,310 perusahaan keamanan yang melayani untuk Bank of Columbia. 9 00:00:31,310 --> 00:00:34,740 Itu sebagian besar di mana saya belajar apa yang telah saya pelajari sejauh ini. 10 00:00:34,740 --> 00:00:37,990 >> Dan beberapa materi yang kita akan pergi ke hari, kita tidak 11 00:00:37,990 --> 00:00:39,670 benar-benar berbicara tentang di kelas. 12 00:00:39,670 --> 00:00:40,410 Tapi kita akan segera. 13 00:00:40,410 --> 00:00:42,360 Ini akan menjadi seperti SQL, JavaScript. 14 00:00:42,360 --> 00:00:44,870 Dan kita belum benar-benar pergi di atasnya. 15 00:00:44,870 --> 00:00:47,730 Jadi saya dapat mengurutkan terbang melalui itu, dan Anda mungkin tidak tahu beberapa hal. 16 00:00:47,730 --> 00:00:48,890 Namun segera, Anda akan mempelajarinya. 17 00:00:48,890 --> 00:00:52,080 Dan itu semua akan masuk akal. 18 00:00:52,080 --> 00:00:54,010 Juga satu hal lagi - 19 00:00:54,010 --> 00:00:55,780 tetap etis. 20 00:00:55,780 --> 00:01:00,560 Beberapa hal yang Anda pelajari, Anda bisa menggunakan cara-cara non-etis. 21 00:01:00,560 --> 00:01:01,950 >> Jika itu Anda, pasti mencoba. 22 00:01:01,950 --> 00:01:04,500 Saya pasti memotivasi kalian untuk mencoba server Anda sendiri, cobalah 23 00:01:04,500 --> 00:01:05,519 masuk ke dalam mereka. 24 00:01:05,519 --> 00:01:08,500 Lihat jika Anda dapat menembus mereka, jika Anda bisa mendapatkan di dalamnya. 25 00:01:08,500 --> 00:01:09,560 Tapi tidak ada orang lain yang. 26 00:01:09,560 --> 00:01:12,390 Polisi tidak benar-benar suka lelucon dan Secara keseluruhan, kami menempatkan ini di sini. 27 00:01:12,390 --> 00:01:14,040 Kami main-main. 28 00:01:14,040 --> 00:01:15,780 Mereka mendapatkan benar-benar marah. 29 00:01:15,780 --> 00:01:18,700 >> Jadi kepala ke website ini. 30 00:01:18,700 --> 00:01:23,560 Saya memiliki dibuka di sini. 31 00:01:23,560 --> 00:01:26,780 Ini adalah sebuah situs web, dan memiliki banyak contoh. 32 00:01:26,780 --> 00:01:30,000 Apa yang terjadi adalah bahwa contoh pertama adalah semacam akan menjadi jauh lebih mudah 33 00:01:30,000 --> 00:01:33,470 dari contoh terakhir dalam arti bahwa contoh pertama 34 00:01:33,470 --> 00:01:34,970 benar-benar tidak aman. 35 00:01:34,970 --> 00:01:40,850 Dan yang terakhir adalah semacam apa biasa orang keamanan web yang akan dilakukan. 36 00:01:40,850 --> 00:01:42,760 Tapi Anda masih bisa sort dari mendapatkan sekitar itu. 37 00:01:42,760 --> 00:01:44,860 Dan kita akan berfokus pada satu dan dua, contoh satu dan dua. 38 00:01:44,860 --> 00:01:49,880 39 00:01:49,880 --> 00:01:49,920 >> OK. 40 00:01:49,920 --> 00:01:52,780 Mari kita mulai dengan cross-site scripting. 41 00:01:52,780 --> 00:01:56,100 The JavaScript dijalankan pada browser klien. 42 00:01:56,100 --> 00:01:59,980 Ini adalah bahasa pemrograman yang Anda gunakan untuk berjalan di browser klien sehingga 43 00:01:59,980 --> 00:02:04,120 Anda tidak perlu untuk memperbarui situs web dan kembali ke server. 44 00:02:04,120 --> 00:02:04,940 Anda telah berjalan. 45 00:02:04,940 --> 00:02:08,870 Sebagai contoh, Facebook, Anda tidak perlu untuk reload website untuk status baru 46 00:02:08,870 --> 00:02:09,710 update untuk datang. 47 00:02:09,710 --> 00:02:12,170 Ini menggunakan JavaScript untuk menghasilkan semua hal ini. 48 00:02:12,170 --> 00:02:16,290 Jadi kita bisa menyuntikkan berbahaya JavaScript ke dalam website. 49 00:02:16,290 --> 00:02:20,890 Dan dengan cara itu, ketika kita mengirim link untuk seseorang, kita bisa semacam mengirimkannya dengan 50 00:02:20,890 --> 00:02:23,050 beberapa kode yang kita inginkan. 51 00:02:23,050 --> 00:02:26,450 >> Ada gigih dan non-persistent JavaScript - 52 00:02:26,450 --> 00:02:30,640 gigih dan non-persistent cross-site scripting, maksudku. 53 00:02:30,640 --> 00:02:33,760 Dan perbedaan adalah bahwa persisten adalah JavaScript yang akan 54 00:02:33,760 --> 00:02:36,060 disimpan di website. 55 00:02:36,060 --> 00:02:39,780 Dan non-persistent akan JavaScript yang benar-benar hanya akan terjadi sekali. 56 00:02:39,780 --> 00:02:41,795 Jadi mari kita lihat contoh cepat. 57 00:02:41,795 --> 00:02:45,660 58 00:02:45,660 --> 00:02:46,130 >> OK. 59 00:02:46,130 --> 00:02:51,620 Jadi website ini, sederhana, tidak ada yang terjadi di sini. 60 00:02:51,620 --> 00:02:53,070 Dan kita akan mencoba untuk memasukkan beberapa JavaScript. 61 00:02:53,070 --> 00:02:58,110 Jadi cara kita mulai menulis JavaScript adalah kita mulai dengan script awal. 62 00:02:58,110 --> 00:03:00,570 Dan kami menutupnya dengan script. 63 00:03:00,570 --> 00:03:03,770 Kita hanya akan menempatkan pesan - 64 00:03:03,770 --> 00:03:05,410 Aku akan menunjukkan kepada Anda - 65 00:03:05,410 --> 00:03:06,500 waspada. 66 00:03:06,500 --> 00:03:11,150 Alert adalah fungsi JavaScript yang digunakan untuk menampilkan sesuatu. 67 00:03:11,150 --> 00:03:12,400 Jadi mari kita coba cepat. 68 00:03:12,400 --> 00:03:15,600 69 00:03:15,600 --> 00:03:18,944 Aku akan pergi, halo waspada. 70 00:03:18,944 --> 00:03:20,400 Yah, aku lupa untuk menempatkan - 71 00:03:20,400 --> 00:03:24,510 72 00:03:24,510 --> 00:03:25,460 OK. 73 00:03:25,460 --> 00:03:26,540 Jadi itu sederhana. 74 00:03:26,540 --> 00:03:28,730 >> Kami menempatkan JavaScript pada sebuah situs web, dan itu muncul. 75 00:03:28,730 --> 00:03:31,200 Dan itu semacam hanya terjadi di website kami, kan? 76 00:03:31,200 --> 00:03:33,040 Jadi sepertinya itu tidak masalah, kan? 77 00:03:33,040 --> 00:03:34,920 Maksudku, bagaimana Anda bisa menggunakan ini jahat? 78 00:03:34,920 --> 00:03:39,930 Jadi cara yang hacker lakukan ini benar-benar sederhana. 79 00:03:39,930 --> 00:03:40,970 Mereka akan meraihnya. 80 00:03:40,970 --> 00:03:43,750 Mereka dapat mengirim link ini kepada Anda. 81 00:03:43,750 --> 00:03:46,780 Jika saya akan mengirim link ini kepada Anda sekarang, dan Anda membukanya, itu akan 82 00:03:46,780 --> 00:03:51,620 mengatakan, halo, mengatakan bahwa website saya kepada Anda halo. 83 00:03:51,620 --> 00:03:57,280 >> Dan jika saya mengatakan sesuatu yang sedikit lebih pintar, jika saya menarik sebuah 84 00:03:57,280 --> 00:03:59,880 Fungsi JavaScript Aku agak dari sudah menulis - 85 00:03:59,880 --> 00:04:03,940 tetapi jika Anda melihat itu, aku akan pergi over sebelum saya menulis itu. 86 00:04:03,940 --> 00:04:06,650 Jadi kita akan mengatur timeout. 87 00:04:06,650 --> 00:04:08,450 Kita akan menunggu beberapa detik. 88 00:04:08,450 --> 00:04:13,970 Bahkan, kita akan menunggu, jika Saya tidak salah, lima detik. 89 00:04:13,970 --> 00:04:15,870 Ini berlaku dalam milidetik. 90 00:04:15,870 --> 00:04:18,640 Lalu apa yang akan kita lakukan adalah kita akan mengingatkan bahwa login 91 00:04:18,640 --> 00:04:21,459 kehabisan waktu untuk masuk kembali masuk 92 00:04:21,459 --> 00:04:23,990 Dan kita akan mengubah lokasi ke lokasi yang berbeda. 93 00:04:23,990 --> 00:04:30,370 94 00:04:30,370 --> 00:04:32,970 >> Jadi jika saya mengirim website ini kepada seseorang, mereka akan menjadi 95 00:04:32,970 --> 00:04:34,380 browsing sekitar, tenang. 96 00:04:34,380 --> 00:04:35,650 Tidak ada yang terjadi. 97 00:04:35,650 --> 00:04:38,550 Dan dalam lima detik, itu akan mengatakan, login timed out. 98 00:04:38,550 --> 00:04:40,200 Silakan masuk kembali masuk 99 00:04:40,200 --> 00:04:43,400 Setelah mereka mengklik OK, aku akan membawa mereka ke situs web lain. 100 00:04:43,400 --> 00:04:45,980 Agaknya, website akan mirip dengan website yang 101 00:04:45,980 --> 00:04:47,280 mereka berada di sebelumnya. 102 00:04:47,280 --> 00:04:50,770 Dan mereka akan log mereka kredensial ke website saya bukan 103 00:04:50,770 --> 00:04:51,850 situs web mereka. 104 00:04:51,850 --> 00:04:54,780 >> Dan jadi saya bisa mengirim orang yang email dengan link ini. 105 00:04:54,780 --> 00:04:56,240 Aku berkata, oh, inilah link. 106 00:04:56,240 --> 00:04:57,290 Ini adalah sebuah bank, misalnya. 107 00:04:57,290 --> 00:05:01,390 Saya katakan, di sini, pergi pada link ini. 108 00:05:01,390 --> 00:05:03,730 Dan setelah mereka kirimkan, mereka akan browsing sekitar. 109 00:05:03,730 --> 00:05:07,560 Aku bisa menunggu selama 15 detik, 20 detik, dan kemudian pop itu silahkan login kembali 110 00:05:07,560 --> 00:05:08,840 menandatangani kembali. 111 00:05:08,840 --> 00:05:10,120 Kalian dapat mencobanya dengan lebih banyak hal. 112 00:05:10,120 --> 00:05:13,190 Ini rumit karena kalian belum melihat JavaScript, sehingga Anda mungkin 113 00:05:13,190 --> 00:05:14,750 tidak tahu beberapa fungsi. 114 00:05:14,750 --> 00:05:18,625 Tapi semua harus Anda lakukan adalah mulai dengan script, berakhir dengan script. 115 00:05:18,625 --> 00:05:22,105 116 00:05:22,105 --> 00:05:25,510 Dan Anda bisa memasukkan apa pun di tengah. 117 00:05:25,510 --> 00:05:27,350 >> Alert adalah fungsi, menunggu. 118 00:05:27,350 --> 00:05:29,365 Lokasi Jendela membawa Anda ke lokasi baru. 119 00:05:29,365 --> 00:05:31,370 Tapi Anda dapat melakukan jauh lebih banyak. 120 00:05:31,370 --> 00:05:32,630 Dan idenya adalah bahwa kami mengambil off. 121 00:05:32,630 --> 00:05:39,350 Jika saya pergi ke dua contoh, dan saya dimasukkan ke dalam kode yang sama ini, itu 122 00:05:39,350 --> 00:05:40,210 tidak akan bekerja. 123 00:05:40,210 --> 00:05:43,620 Jadi itu mencetak semuanya keluar karena apa website ini awalnya 124 00:05:43,620 --> 00:05:50,350 dilakukan adalah jika saya menempatkan apa pun di sini, itu akan mencetaknya di sini. 125 00:05:50,350 --> 00:05:52,390 Jadi itu tidak mencetak apa-apa. 126 00:05:52,390 --> 00:05:55,560 Contoh ini benar-benar memeriksa untuk melihat apakah ada script. 127 00:05:55,560 --> 00:05:57,163 Jadi ya, silakan. 128 00:05:57,163 --> 00:05:57,606 Tanya saya. 129 00:05:57,606 --> 00:05:59,560 >> AUDIENCE: Apakah tidak mengirim get atau mengirim permintaan? 130 00:05:59,560 --> 00:06:00,670 >> LUCIANO ARANGO: Ya. mereka mengirimkan permintaan get. 131 00:06:00,670 --> 00:06:01,350 >> AUDIENCE: Ini adalah? 132 00:06:01,350 --> 00:06:02,490 >> LUCIANO ARANGO: Ya. 133 00:06:02,490 --> 00:06:04,030 Juga menggunakan browser permintaan pos. 134 00:06:04,030 --> 00:06:07,470 Tapi aku mencoba untuk menunjukkan permintaan get sehingga kita bisa melihat apa yang 135 00:06:07,470 --> 00:06:10,760 sebenarnya terjadi. 136 00:06:10,760 --> 00:06:12,880 Dan jika kita melihat kode ini - sehingga tidak bekerja lagi. 137 00:06:12,880 --> 00:06:24,870 Dan jika kita melihat pada kode ini, itu akan berada di dua contoh. 138 00:06:24,870 --> 00:06:29,300 Apa orang ini yang dilakukan, orang tersebut yang bertanggung jawab atas browser ini - 139 00:06:29,300 --> 00:06:35,370 membuka, OK - 140 00:06:35,370 --> 00:06:39,290 menggantikan script kata. 141 00:06:39,290 --> 00:06:42,850 Ini adalah PHP, yang kalian mungkin telah melihat sedikit belum. 142 00:06:42,850 --> 00:06:46,250 >> Dia hanya mengganti naskah kata dengan nama. 143 00:06:46,250 --> 00:06:50,895 Jadi Namun, jika saya pergi ke depan dan hanya dimasukkan ke dalam - 144 00:06:50,895 --> 00:06:58,520 145 00:06:58,520 --> 00:07:02,360 jika saya ambil kode saya lagi, dan aku akan untuk memodifikasi hanya sedikit. 146 00:07:02,360 --> 00:07:15,010 Alih-alih script, aku akan berubah untuk naskah dengan modal R. Dan 147 00:07:15,010 --> 00:07:16,390 kita akan melihat apakah kode ini bekerja. 148 00:07:16,390 --> 00:07:19,090 Jadi tidak mencetaknya, yang merupakan pertanda baik. 149 00:07:19,090 --> 00:07:21,990 Dan mudah-mudahan dalam dua detik lagi, itu akan muncul. 150 00:07:21,990 --> 00:07:22,820 >> Login Anda habis. 151 00:07:22,820 --> 00:07:23,210 OK. 152 00:07:23,210 --> 00:07:24,460 Tidak apa-apa. 153 00:07:24,460 --> 00:07:27,670 Jadi memeriksa naskah mungkin belum tentu bekerja. 154 00:07:27,670 --> 00:07:28,130 Orang - 155 00:07:28,130 --> 00:07:32,290 itu juga dapat memeriksa naskah huruf besar, Script huruf kecil, kasus str 156 00:07:32,290 --> 00:07:34,180 membandingkan, pastikan mereka sama. 157 00:07:34,180 --> 00:07:38,480 Tapi hacker masih dapat melakukan semacam apa kita lakukan di Vigenere ketika kita pindah 158 00:07:38,480 --> 00:07:40,620 kembali beberapa karakter, bergerak maju. 159 00:07:40,620 --> 00:07:43,470 Dan bisa mencari cara untuk meletakkan script kembali di sana sehingga dapat menyuntikkan 160 00:07:43,470 --> 00:07:44,460 bahwa script. 161 00:07:44,460 --> 00:07:50,370 >> Jadi apa yang ingin Anda gunakan adalah htmlspecialchars untuk 162 00:07:50,370 --> 00:07:51,330 melindungi situs Anda. 163 00:07:51,330 --> 00:07:56,490 Dan apa yang dilakukan adalah membuat yakin bahwa apa yang Anda masukkan ke dalam - 164 00:07:56,490 --> 00:07:59,610 misalnya, kutipan atau ini lebih besar dari atau kurang dari - 165 00:07:59,610 --> 00:08:04,701 diganti dengan sesuatu yang tidak akan - 166 00:08:04,701 --> 00:08:05,951 biarkan aku memperbesar sini - 167 00:08:05,951 --> 00:08:08,730 168 00:08:08,730 --> 00:08:09,685 ampersand sebenarnya. 169 00:08:09,685 --> 00:08:13,420 Ini akan menggantikan mereka khusus HTML karakter yang akan kita lihat ketika kita 170 00:08:13,420 --> 00:08:14,670 bicarakan - 171 00:08:14,670 --> 00:08:18,635 172 00:08:18,635 --> 00:08:20,740 oh, ini akan membawa saya kembali ke - 173 00:08:20,740 --> 00:08:24,220 174 00:08:24,220 --> 00:08:25,380 karakter ini di sini. 175 00:08:25,380 --> 00:08:28,180 >> Menandakan bahwa ini sesuatu akan datang. 176 00:08:28,180 --> 00:08:31,570 Untuk HTML, yang braket mulai memberitahu kita bahwa sesuatu 177 00:08:31,570 --> 00:08:33,299 HTML terkait akan datang. 178 00:08:33,299 --> 00:08:33,980 Dan kami ingin menyingkirkan itu. 179 00:08:33,980 --> 00:08:36,200 Kami tidak ingin menempatkan HTML ke dalam website.k Kami tidak ingin pengguna untuk menjadi 180 00:08:36,200 --> 00:08:40,260 mampu menempatkan sesuatu di situs web mereka yang dapat mempengaruhi website mereka, seperti 181 00:08:40,260 --> 00:08:43,480 Script atau HTML atau sesuatu seperti itu. 182 00:08:43,480 --> 00:08:53,090 Yang penting adalah bahwa Anda membersihkan input pengguna. 183 00:08:53,090 --> 00:08:54,720 >> Jadi pengguna dapat masukan banyak hal. 184 00:08:54,720 --> 00:08:58,110 Dia dapat memasukkan banyak hal untuk mencoba untuk mengelabui browser Anda ke dalam masih 185 00:08:58,110 --> 00:08:59,410 menjalankan kode script ini. 186 00:08:59,410 --> 00:09:02,870 Apa yang ingin Anda lakukan adalah tidak hanya melihat untuk naskah, tetapi mencari segala sesuatu 187 00:09:02,870 --> 00:09:04,250 yang bisa berbahaya. 188 00:09:04,250 --> 00:09:06,800 Dan htmlspecialchars akan melakukannya untuk Anda, sehingga Anda tidak perlu 189 00:09:06,800 --> 00:09:07,340 khawatir tentang hal itu. 190 00:09:07,340 --> 00:09:12,280 Tapi jangan mencoba untuk melakukan sendiri semacam dengan kode Anda sendiri. 191 00:09:12,280 --> 00:09:14,055 Apakah setiap orang yang jelas tentang XSS? 192 00:09:14,055 --> 00:09:14,370 >> OK. 193 00:09:14,370 --> 00:09:16,355 Mari kita pergi ke injeksi SQL. 194 00:09:16,355 --> 00:09:21,010 Jadi injeksi SQL mungkin adalah nomor satu kerentanan 195 00:09:21,010 --> 00:09:22,490 dalam website yang berbeda. 196 00:09:22,490 --> 00:09:24,350 Maksudku, contoh yang baik - 197 00:09:24,350 --> 00:09:27,350 Aku hanya meneliti terjauh untuk hal ini. 198 00:09:27,350 --> 00:09:34,430 Dan saya menemukan artikel ini mengagumkan, di mana Saya melihat bahwa Harvard dilanggar, 199 00:09:34,430 --> 00:09:35,390 hacked. 200 00:09:35,390 --> 00:09:37,370 Dan aku bertanya-tanya, baik, bagaimana mereka akan melakukannya? 201 00:09:37,370 --> 00:09:41,660 Harvard yang paling mengagumkan, sebagian besar mengamankan universitas pernah. 202 00:09:41,660 --> 00:09:43,850 Benar? 203 00:09:43,850 --> 00:09:45,410 Nah, untuk pelanggaran server, hacker menggunakan 204 00:09:45,410 --> 00:09:47,710 teknik yang disebut SQL injection. 205 00:09:47,710 --> 00:09:50,250 >> Jadi ini terjadi pada hari ke hari. 206 00:09:50,250 --> 00:09:53,590 Orang lupa untuk memperhitungkan untuk injeksi SQL. 207 00:09:53,590 --> 00:09:54,930 Harvard tidak. 208 00:09:54,930 --> 00:10:00,050 Saya pikir itu mengatakan di sini, Princeton, Stanford, Cornell. 209 00:10:00,050 --> 00:10:03,550 Jadi bagaimana kita - jadi apa SQL ini injection yang membawa semua ini 210 00:10:03,550 --> 00:10:05,668 orang bawah? 211 00:10:05,668 --> 00:10:08,010 OK. 212 00:10:08,010 --> 00:10:12,090 Jadi SQL adalah bahasa pemrograman yang kita gunakan untuk mengakses database. 213 00:10:12,090 --> 00:10:14,560 Apa yang kita lakukan adalah kita pilih - 214 00:10:14,560 --> 00:10:18,510 jadi apa ini berbunyi sekarang adalah pilih segala sesuatu dari meja. 215 00:10:18,510 --> 00:10:22,640 >> SQL, itu berubah menjadi database ini yang memiliki tabel penuh dengan informasi. 216 00:10:22,640 --> 00:10:26,550 Jadi memilih semuanya dari pengguna dimana nama adalah nama pengguna. 217 00:10:26,550 --> 00:10:28,120 Benar? 218 00:10:28,120 --> 00:10:30,770 Cukup sederhana. 219 00:10:30,770 --> 00:10:34,490 Ide SQL injection adalah bahwa kita menyisipkan beberapa kode berbahaya yang akan 220 00:10:34,490 --> 00:10:37,270 mengelabui server ke dalam menjalankan sesuatu berbeda dari apa yang 221 00:10:37,270 --> 00:10:38,430 awalnya berjalan. 222 00:10:38,430 --> 00:10:44,970 Jadi katakanlah username, kita masukkan ke dalam atau 1 sama dengan 1. 223 00:10:44,970 --> 00:10:46,700 Jadi kita masukkan ke dalam atau 1 sama dengan 1. 224 00:10:46,700 --> 00:10:49,890 Cara itu akan membaca sekarang akan pilih dari pengguna, mulai dari 225 00:10:49,890 --> 00:10:51,360 pengguna - ini adalah segalanya - 226 00:10:51,360 --> 00:10:55,880 mana nama adalah nama pengguna, tapi username adalah 1 atau sama dengan 1. 227 00:10:55,880 --> 00:11:01,760 >> Jadi namanya apa-apa atau 1 sama dengan 1. 228 00:11:01,760 --> 00:11:04,060 1 sama dengan 1 adalah selalu benar. 229 00:11:04,060 --> 00:11:07,690 Jadi ini akan selalu kembali informasi dari pengguna. 230 00:11:07,690 --> 00:11:08,100 OK. 231 00:11:08,100 --> 00:11:10,030 Kita tidak perlu memiliki username. 232 00:11:10,030 --> 00:11:14,240 Kami hanya dapat memiliki apa pun yang kita inginkan, dan akan kembali informasi 233 00:11:14,240 --> 00:11:15,690 yang kita butuhkan. 234 00:11:15,690 --> 00:11:17,160 Mari kita lihat contoh lain. 235 00:11:17,160 --> 00:11:22,720 >> Jika kita telah memilih semuanya dari pengguna, mana nama adalah pengguna TABLE DROP - 236 00:11:22,720 --> 00:11:26,420 jadi apa yang Anda pikir hal ini akan lakukan jika saya dimasukkan ke dalam username 237 00:11:26,420 --> 00:11:29,560 sebagai pengguna DROP TABLE? 238 00:11:29,560 --> 00:11:30,230 Ada yang punya ide? 239 00:11:30,230 --> 00:11:31,050 Ya. 240 00:11:31,050 --> 00:11:32,470 >> AUDIENCE: Ini akan memberitahu untuk membuang semua tabel. 241 00:11:32,470 --> 00:11:35,460 >> LUCIANO ARANGO: Ini akan memberitahu kami untuk membuang segala sesuatu di website, 242 00:11:35,460 --> 00:11:38,290 segala sesuatu dalam database. 243 00:11:38,290 --> 00:11:41,910 Dan apa yang orang menggunakan ini untuk - jadi Aku akan menunjukkan kepada kalian. 244 00:11:41,910 --> 00:11:45,462 Saya dinonaktifkan menjatuhkan tabel karena saya tidak ingin Anda 245 00:11:45,462 --> 00:11:48,240 orang untuk menjatuhkan meja saya. 246 00:11:48,240 --> 00:11:49,850 Mari kita lihat ini. 247 00:11:49,850 --> 00:11:54,410 Jadi ini hanya menarik sampai informasi untuk orang tertentu. 248 00:11:54,410 --> 00:11:57,550 Jadi bagaimana kita tahu apakah ini adalah dipengaruhi oleh injeksi SQL. 249 00:11:57,550 --> 00:12:01,545 Kita akan memeriksa nyata cepat jika kita dapat menempatkan sesuatu - 250 00:12:01,545 --> 00:12:04,990 251 00:12:04,990 --> 00:12:06,080 biarkan aku salin kode ini. 252 00:12:06,080 --> 00:12:08,140 Aku akan pergi ke dalam satu detik. 253 00:12:08,140 --> 00:12:12,210 Aku akan menempatkan akar dan 1 sama dengan 1. 254 00:12:12,210 --> 00:12:15,510 >> Ini di sini, ini tanda persen 23 - 255 00:12:15,510 --> 00:12:19,970 apa itu benar-benar adalah, jika saya lihat di sini di - 256 00:12:19,970 --> 00:12:23,820 cara HTML mengambil dalam jumlah, jika Anda lihatlah ketika saya dimasukkan ke dalam ruang 257 00:12:23,820 --> 00:12:28,380 di sini - jika saya ruang sesuatu di sini, perubahan itu ke persen 2. 258 00:12:28,380 --> 00:12:31,420 Apakah kalian melihat ini di sini ketika saya dimasukkan ke dalam ruang? 259 00:12:31,420 --> 00:12:36,710 Cara kerjanya adalah bahwa Anda hanya dapat mengirim nilai ASCII melalui HTML. 260 00:12:36,710 --> 00:12:40,330 Jadi itu menggantikan, misalnya, ruang dengan 20 persen. 261 00:12:40,330 --> 00:12:41,970 Aku tidak tahu apakah kalian telah melihat itu sebelumnya. 262 00:12:41,970 --> 00:12:45,100 >> Ini menggantikan hashtag dengan 23 persen. 263 00:12:45,100 --> 00:12:50,840 Kita perlu hashtag di akhir atau Pernyataan sehingga kita dapat memberitahu 264 00:12:50,840 --> 00:13:00,885 database untuk lupa untuk komentar titik koma terakhir ini di akhir. 265 00:13:00,885 --> 00:13:03,060 Kami ingin tidak berpikir tentang hal itu. 266 00:13:03,060 --> 00:13:05,980 Kami hanya ingin menjalankan semuanya yang kita miliki sebelumnya dan 267 00:13:05,980 --> 00:13:07,450 komentar yang keluar. 268 00:13:07,450 --> 00:13:08,710 Mari kita lihat itu. 269 00:13:08,710 --> 00:13:14,670 >> Jadi jika saya harus menempatkan sesuatu yang salah - katakanlah misalnya, saya menempatkan 2 equals 270 00:13:14,670 --> 00:13:15,690 1, tidak memberikan apa-apa. 271 00:13:15,690 --> 00:13:22,930 Ketika saya dimasukkan ke dalam 1 sama dengan 1, dan tidak kembali sesuatu, ini memberitahu saya bahwa 272 00:13:22,930 --> 00:13:24,660 ini rentan terhadap suntikan SQL. 273 00:13:24,660 --> 00:13:29,090 Aku tahu sekarang bahwa apa pun Aku meletakkan setelah ini - 274 00:13:29,090 --> 00:13:39,110 dan misalnya, DROP TABEL atau sesuatu seperti itu 275 00:13:39,110 --> 00:13:41,190 pasti akan bekerja. 276 00:13:41,190 --> 00:13:44,350 Aku tahu itu rentan terhadap SQL injection karena saya tahu bahwa 277 00:13:44,350 --> 00:13:49,850 di bawah tenda, itu membiarkan saya melakukan 1 sama dengan 1 hal. 278 00:13:49,850 --> 00:13:51,100 OK? 279 00:13:51,100 --> 00:13:53,950 280 00:13:53,950 --> 00:13:56,540 >> Dan jika kita melihat-anak lainnya, nomor dua dan nomor tiga, itu 281 00:13:56,540 --> 00:13:59,110 akan melakukan sedikit lebih memeriksa di bawah 282 00:13:59,110 --> 00:14:03,680 kap apa itu. 283 00:14:03,680 --> 00:14:07,425 Jadi siapa pun memungkinkan drop apa pun atau mencoba? 284 00:14:07,425 --> 00:14:08,760 Apakah kalian mendapatkan semacam SQL belum? 285 00:14:08,760 --> 00:14:10,430 Karena aku tahu kalian belum melihatnya lagi, jadi semacam 286 00:14:10,430 --> 00:14:11,759 membingungkan bagi kalian. 287 00:14:11,759 --> 00:14:16,160 288 00:14:16,160 --> 00:14:18,480 Mari kita lihat. 289 00:14:18,480 --> 00:14:21,270 Jadi apa cara untuk mencegah SQLI? 290 00:14:21,270 --> 00:14:21,390 OK. 291 00:14:21,390 --> 00:14:23,330 Jadi ini benar-benar penting karena Anda Orang-orang pasti ingin mencegah 292 00:14:23,330 --> 00:14:24,090 ini di website Anda. 293 00:14:24,090 --> 00:14:28,040 >> Jika tidak, semua teman-teman Anda akan mengolok-olok Anda ketika mereka drop semua 294 00:14:28,040 --> 00:14:29,390 tabel Anda. 295 00:14:29,390 --> 00:14:36,150 Jadi idenya adalah bahwa Anda memperbaiki SQL dengan cara tertentu, sedangkan Anda cocok 296 00:14:36,150 --> 00:14:41,940 apa input pengguna dengan string tertentu. 297 00:14:41,940 --> 00:14:46,120 Jadi cara ini bekerja adalah Anda mempersiapkan database. 298 00:14:46,120 --> 00:14:50,830 Anda memilih nama, warna, dan kalori dari database yang disebut buah. 299 00:14:50,830 --> 00:14:53,580 Dan kemudian di mana kalori kurang dari, dan kami menaruh tanda tanya di sana 300 00:14:53,580 --> 00:14:56,530 mengatakan kita akan masukan sesuatu dalam hitungan detik. 301 00:14:56,530 --> 00:14:58,850 >> Dan warna sama, dan kami mengajukan pertanyaan mark mengatakan kita akan 302 00:14:58,850 --> 00:15:00,913 masukan sesuatu dalam satu detik juga. 303 00:15:00,913 --> 00:15:02,660 OK? 304 00:15:02,660 --> 00:15:09,920 Dan kemudian kita jalankan, menempatkan di 150 dan merah. 305 00:15:09,920 --> 00:15:12,820 Dan ini akan memeriksa untuk memastikan yakin bahwa kedua - 306 00:15:12,820 --> 00:15:15,300 array ini akan memeriksa bahwa ini Kedua adalah integer dan 307 00:15:15,300 --> 00:15:16,550 bahwa ini adalah sebuah string. 308 00:15:16,550 --> 00:15:18,810 309 00:15:18,810 --> 00:15:20,890 Kemudian kami pergi, dan kami mengambil semua, kami memasukkannya ke dalam merah. 310 00:15:20,890 --> 00:15:21,964 Itu berarti kita mengambil semua. 311 00:15:21,964 --> 00:15:26,790 Ini berarti kita benar-benar mengeksekusi SQL Pernyataan dan mengembalikannya ke warna merah. 312 00:15:26,790 --> 00:15:30,530 Di sini kita melakukan hal yang sama, tapi kami melakukan hal yang sama untuk kuning. 313 00:15:30,530 --> 00:15:32,490 Dan kita mengambil semua. 314 00:15:32,490 --> 00:15:36,140 >> Dan dengan cara ini, kita mencegah pengguna dari mampu masukan sesuatu 315 00:15:36,140 --> 00:15:41,710 bukan itu yang kita ditentukan, string atau integer, misalnya. 316 00:15:41,710 --> 00:15:45,100 317 00:15:45,100 --> 00:15:46,610 Aku sedang berbicara sebelumnya tentang bergantung pada orang lain. 318 00:15:46,610 --> 00:15:50,010 Ketika kalian memulai proyek Anda, Anda paling pasti akan menggunakan 319 00:15:50,010 --> 00:15:52,310 bootstrap atau sesuatu yang serupa. 320 00:15:52,310 --> 00:15:53,490 Apakah kalian pernah menggunakan Wordpress? 321 00:15:53,490 --> 00:15:57,170 Mungkin kalian telah menggunakan Wordpress paling mungkin. 322 00:15:57,170 --> 00:16:00,050 Jadi masalah dengan menggunakan hal-hal orang lain - 323 00:16:00,050 --> 00:16:05,940 Aku hanya pergi ke Google cepat nyata Kerentanan Wordpress. 324 00:16:05,940 --> 00:16:07,495 >> Jika saya melakukan ini sampai sekarang - 325 00:16:07,495 --> 00:16:08,995 Aku benar-benar melakukan dua detik Google. 326 00:16:08,995 --> 00:16:12,300 327 00:16:12,300 --> 00:16:13,800 Kita bisa melihat bahwa Wordpress - 328 00:16:13,800 --> 00:16:17,450 ini tanggal sebagai September '12. 329 00:16:17,450 --> 00:16:19,120 26 diperbarui. 330 00:16:19,120 --> 00:16:23,620 Konfigurasi default dari Wordpress sebelum 3.6 tidak mencegah ini 331 00:16:23,620 --> 00:16:27,110 upload tertentu, kekuatan yang memudahkan 332 00:16:27,110 --> 00:16:29,790 cross-site scripting serangan. 333 00:16:29,790 --> 00:16:34,530 Jadi cerita singkat, setelah kami bekerja dengan - jadi aku, di musim panas, bekerja sebuah 334 00:16:34,530 --> 00:16:34,970 magang. 335 00:16:34,970 --> 00:16:40,400 Dan kami bekerja dengan semacam seperti perusahaan kartu kredit besar. 336 00:16:40,400 --> 00:16:42,020 >> Dan mereka bergantung pada sesuatu yang disebut - 337 00:16:42,020 --> 00:16:45,740 Aku tidak tahu apakah kalian pernah bermain dengan produk yang disebut Joomla. 338 00:16:45,740 --> 00:16:51,750 Joomla adalah produk yang digunakan untuk control - semacam mirip dengan 339 00:16:51,750 --> 00:16:54,340 Wordpress, digunakan untuk membangun website. 340 00:16:54,340 --> 00:16:56,060 Jadi mereka memiliki situs web mereka bekerja pada Joomla. 341 00:16:56,060 --> 00:16:59,290 Ini sebenarnya kartu kredit perusahaan di Kolombia. 342 00:16:59,290 --> 00:17:01,000 Aku akan membawa Anda ke mereka situs cepat. 343 00:17:01,000 --> 00:17:04,550 344 00:17:04,550 --> 00:17:05,400 >> Jadi mereka menggunakan Joomla. 345 00:17:05,400 --> 00:17:08,630 Dan mereka tidak diperbarui Joomla penambahan terbaru. 346 00:17:08,630 --> 00:17:12,160 Dan ketika kami mengambil melihat kode mereka, kami mampu untuk benar-benar 347 00:17:12,160 --> 00:17:18,430 masuk ke dalam kode mereka dan mencuri semua informasi kartu kredit yang mereka miliki, 348 00:17:18,430 --> 00:17:21,670 semua nomor kartu kredit, nama, alamat. 349 00:17:21,670 --> 00:17:22,740 Dan ini hanya - 350 00:17:22,740 --> 00:17:23,569 dan kode mereka baik-baik saja. 351 00:17:23,569 --> 00:17:24,710 Mereka memiliki kode besar. 352 00:17:24,710 --> 00:17:25,389 Itu semua keamanan. 353 00:17:25,389 --> 00:17:26,520 Mereka memeriksa semua database. 354 00:17:26,520 --> 00:17:29,020 Mereka memastikan cross-site scripting baik-baik saja. 355 00:17:29,020 --> 00:17:34,390 >> Tapi mereka menggunakan sesuatu yang tidak diperbarui, itu tidak aman. 356 00:17:34,390 --> 00:17:36,940 Dan sehingga membawa mereka ke - sehingga kalian pasti akan menggunakan lain 357 00:17:36,940 --> 00:17:40,650 kode, kerangka orang lain orang untuk membangun website Anda. 358 00:17:40,650 --> 00:17:43,860 Pastikan bahwa mereka aman karena kadang-kadang itu bukan Anda, salah satu yang 359 00:17:43,860 --> 00:17:44,480 membuat kesalahan. 360 00:17:44,480 --> 00:17:47,440 Tapi orang lain membuat kesalahan, dan maka Anda jatuh karena itu. 361 00:17:47,440 --> 00:17:51,190 362 00:17:51,190 --> 00:17:53,885 >> Sandi dan PII. 363 00:17:53,885 --> 00:17:56,820 Jadi password. 364 00:17:56,820 --> 00:17:58,070 OK. 365 00:17:58,070 --> 00:17:59,980 366 00:17:59,980 --> 00:18:04,230 Mari kita lihat password cepat. 367 00:18:04,230 --> 00:18:04,590 OK. 368 00:18:04,590 --> 00:18:06,520 Tolong beritahu saya bahwa setiap orang menggunakan aman - 369 00:18:06,520 --> 00:18:09,030 Aku berharap semua orang di sini menggunakan password yang aman. 370 00:18:09,030 --> 00:18:12,890 Aku hanya membiarkan bahwa sebagai asumsi. 371 00:18:12,890 --> 00:18:14,850 Jadi kalian pasti akan menyimpan password untuk situs web Anda. 372 00:18:14,850 --> 00:18:17,440 Anda akan membuat sesuatu seperti login atau sesuatu seperti itu. 373 00:18:17,440 --> 00:18:19,610 Yang penting adalah untuk tidak menyimpan password dalam teks biasa. 374 00:18:19,610 --> 00:18:20,860 Hal ini sangat penting. 375 00:18:20,860 --> 00:18:23,960 Anda tidak ingin menyimpan password dalam teks biasa. 376 00:18:23,960 --> 00:18:27,370 >> Dan Anda pasti tidak benar-benar ingin untuk menyimpannya dalam satu cara hash. 377 00:18:27,370 --> 00:18:32,440 Jadi apa yang salah satu cara hash adalah bahwa ketika Anda menghasilkan kata, ketika Anda menaruh ini 378 00:18:32,440 --> 00:18:36,200 kata menjadi fungsi hash, maka akan menghasilkan kembali semacam samar 379 00:18:36,200 --> 00:18:39,390 pesan atau set samar kunci. 380 00:18:39,390 --> 00:18:40,640 Saya akan menunjukkan sebuah contoh. 381 00:18:40,640 --> 00:18:44,620 382 00:18:44,620 --> 00:18:50,250 Aku akan hash password1 kata yang mereka. 383 00:18:50,250 --> 00:18:55,280 Hash Jadi md5 akan kembali saya semacam informasi aneh. 384 00:18:55,280 --> 00:18:59,140 >> Masalahnya adalah bahwa orang di luar sana yang ingin masuk ke website memiliki 385 00:18:59,140 --> 00:19:02,750 sudah tahu sort semua hash md5. 386 00:19:02,750 --> 00:19:06,030 Apa yang mereka lakukan adalah mereka duduk di mereka komputer, dan mereka hash setiap 387 00:19:06,030 --> 00:19:09,660 mungkin kata tunggal di luar sana sampai mereka punya semacam apa ini. 388 00:19:09,660 --> 00:19:11,420 Jika saya melihat ini - 389 00:19:11,420 --> 00:19:12,420 Aku hanya meraih hash ini. 390 00:19:12,420 --> 00:19:14,120 Jika saya mendapatkan hash ini dari - 391 00:19:14,120 --> 00:19:17,470 jika aku pergi ke sebuah situs web, dan saya menemukan hash ini karena saya bisa sampai ke 392 00:19:17,470 --> 00:19:24,100 database, dan aku melihat ke atas, seseorang sudah figured it out bagi saya. 393 00:19:24,100 --> 00:19:28,600 394 00:19:28,600 --> 00:19:29,100 >> Ya. 395 00:19:29,100 --> 00:19:35,030 Jadi orang-orang duduk, dan md5 apapun hash yang Anda masukkan ke dalam, mereka akan 396 00:19:35,030 --> 00:19:37,760 kembali kepada Anda sesuatu itu sebuah kata. 397 00:19:37,760 --> 00:19:39,800 Jika saya hash kata lain, seperti - 398 00:19:39,800 --> 00:19:42,410 Saya tidak tahu - 399 00:19:42,410 --> 00:19:43,490 trees2. 400 00:19:43,490 --> 00:19:46,050 Saya tidak ingin menjadi kecewa oleh pencarian Google saya. 401 00:19:46,050 --> 00:19:49,820 402 00:19:49,820 --> 00:19:52,780 Itu dia, trees2. 403 00:19:52,780 --> 00:19:55,930 Jadi banyak situs masih menggunakan md5 hash. 404 00:19:55,930 --> 00:19:57,730 Mereka mengatakan, oh, itu aman. 405 00:19:57,730 --> 00:19:58,570 Kami tidak menyimpan dalam teks biasa. 406 00:19:58,570 --> 00:19:59,740 Kami memiliki hash md5 ini. 407 00:19:59,740 --> 00:20:01,880 Dan semua harus saya lakukan adalah hanya Google nomor tersebut. 408 00:20:01,880 --> 00:20:03,940 >> Aku bahkan tidak harus menghitung sendiri. 409 00:20:03,940 --> 00:20:06,790 Aku hanya bisa Google itu, dan seseorang sudah melakukannya untuk saya. 410 00:20:06,790 --> 00:20:08,010 Berikut adalah banyak dari mereka. 411 00:20:08,010 --> 00:20:09,260 Berikut sekelompok password. 412 00:20:09,260 --> 00:20:13,890 413 00:20:13,890 --> 00:20:18,680 Jadi pasti tidak menggunakan md5 hash, karena semua Anda harus 414 00:20:18,680 --> 00:20:19,140 lakukan adalah Google itu. 415 00:20:19,140 --> 00:20:20,390 Jadi apa yang Anda ingin gunakan saja? 416 00:20:20,390 --> 00:20:29,340 417 00:20:29,340 --> 00:20:30,170 OK. 418 00:20:30,170 --> 00:20:31,260 Sesuatu yang disebut penggaraman. 419 00:20:31,260 --> 00:20:32,460 Jadi apa pengasinan adalah - 420 00:20:32,460 --> 00:20:36,280 kalian ingat ketika kami berbicara tentang acak di - 421 00:20:36,280 --> 00:20:37,920 Saya tidak yakin apa yang pset itu - 422 00:20:37,920 --> 00:20:41,140 apakah itu pset sana atau empat? 423 00:20:41,140 --> 00:20:45,150 >> Kami berbicara tentang menemukan jarum di tumpukan jerami. 424 00:20:45,150 --> 00:20:48,480 Dan dalam pset, itu mengatakan bahwa Anda bisa benar-benar mencari tahu apa random 425 00:20:48,480 --> 00:20:51,840 menghasilkan karena seseorang sudah berlari acak satu juta kali dan hanya 426 00:20:51,840 --> 00:20:53,230 semacam membentuk apa yang mereka hasilkan. 427 00:20:53,230 --> 00:20:55,840 Apa yang ingin Anda lakukan adalah dimasukkan ke dalam input. 428 00:20:55,840 --> 00:20:57,130 Jadi itulah yang pengasinan semacam ini. 429 00:20:57,130 --> 00:21:00,900 Mereka sudah tahu apa yang penggaraman kembali untuk setiap pekerjaan. 430 00:21:00,900 --> 00:21:04,750 >> Jadi apa yang dilakukan adalah penggaraman Anda masukkan ke dalam garam. 431 00:21:04,750 --> 00:21:06,160 Anda dimasukkan ke dalam kata tertentu. 432 00:21:06,160 --> 00:21:09,720 Dan itu akan hash kata itu tergantung pada apa yang Anda masukkan ke dalam sini. 433 00:21:09,720 --> 00:21:13,570 Jadi jika saya hash password satu dengan ini kalimat, itu akan hash 434 00:21:13,570 --> 00:21:17,180 berbeda jika saya hash password1 dengan kalimat yang berbeda. 435 00:21:17,180 --> 00:21:21,670 Ini semacam memberikan tempat untuk mulai untuk hashing untuk memulai. 436 00:21:21,670 --> 00:21:25,970 Jadi jauh lebih sulit untuk menghitung, tetapi Anda masih bisa menghitung, terutama 437 00:21:25,970 --> 00:21:26,830 jika Anda menggunakan garam yang buruk. 438 00:21:26,830 --> 00:21:29,650 >> Orang-orang sudah tahu juga garam umum dan tahu 439 00:21:29,650 --> 00:21:31,500 apa itu. 440 00:21:31,500 --> 00:21:34,980 Garam acak jauh lebih baik, tapi cara terbaik adalah dengan menggunakan 441 00:21:34,980 --> 00:21:38,160 sesuatu yang disebut crypt. 442 00:21:38,160 --> 00:21:40,480 Dan apa crypt memungkinkan Anda untuk lakukan - sehingga fungsi-fungsi ini 443 00:21:40,480 --> 00:21:41,820 sudah dibangun untuk Anda. 444 00:21:41,820 --> 00:21:44,910 Banyak orang lupa bahwa, atau mereka lupa untuk menggunakannya. 445 00:21:44,910 --> 00:21:54,520 Tapi kalau aku mencari PHP crypt, crypt sudah mengembalikan string hash untuk saya. 446 00:21:54,520 --> 00:21:58,790 Dan itu benar-benar garam itu berkali-kali dan hash berkali-kali. 447 00:21:58,790 --> 00:22:00,070 >> Jadi kita tidak perlu melakukan hal ini. 448 00:22:00,070 --> 00:22:04,790 Jadi yang harus Anda lakukan adalah mengirimkannya ke crypt. 449 00:22:04,790 --> 00:22:08,170 Dan itu akan membuat hash besar tanpa Anda harus khawatir tentang garam 450 00:22:08,170 --> 00:22:08,990 atau apa pun. 451 00:22:08,990 --> 00:22:12,000 Karena jika Anda adalah untuk garam, Anda harus untuk mengingat apa yang Anda gunakan garam 452 00:22:12,000 --> 00:22:13,800 karena jika tidak, Anda tidak bisa mendapatkan Anda Sandi kembali tanpa 453 00:22:13,800 --> 00:22:15,760 garam yang Anda gunakan. 454 00:22:15,760 --> 00:22:17,010 OK. 455 00:22:17,010 --> 00:22:21,120 456 00:22:21,120 --> 00:22:23,150 >> Dan juga identitas pribadi informasi. 457 00:22:23,150 --> 00:22:26,730 Keamanan sehingga sosial, kartu kredit - itu cukup jelas. 458 00:22:26,730 --> 00:22:31,880 Tapi kadang-kadang orang lupa cara itu perbuatan adalah, seberapa banyak informasi yang Anda 459 00:22:31,880 --> 00:22:35,690 benar-benar perlu menemukan beberapa satu orang? 460 00:22:35,690 --> 00:22:37,740 Seseorang melakukan penelitian tentang ini jalan kembali. 461 00:22:37,740 --> 00:22:40,870 Dan itu seperti, jika Anda memiliki nama lengkap, Anda tidak dapat menemukan 462 00:22:40,870 --> 00:22:41,610 seseorang yang mudah. 463 00:22:41,610 --> 00:22:43,900 Tetapi bagaimana jika Anda memiliki nama lengkap dan tanggal kelahiran mereka? 464 00:22:43,900 --> 00:22:47,770 Apakah itu cukup untuk mengidentifikasi seseorang secara khusus? 465 00:22:47,770 --> 00:22:52,760 >> Bagaimana jika Anda memiliki nama mereka dan alamat jalan bahwa mereka hidup? 466 00:22:52,760 --> 00:22:55,110 Apakah itu cukup untuk menemukan seseorang? 467 00:22:55,110 --> 00:23:02,490 Dan saat itulah mereka mempertanyakan, apa yang informasi identitas pribadi, dan 468 00:23:02,490 --> 00:23:05,360 apa yang harus Anda khawatir tentang tidak memberikan? 469 00:23:05,360 --> 00:23:08,770 Jika Anda memberikan identitas pribadi informasi yang seseorang memberi Anda, 470 00:23:08,770 --> 00:23:11,420 Anda berpotensi bisa dituntut. 471 00:23:11,420 --> 00:23:12,610 Dan kita pasti tidak menginginkan hal itu. 472 00:23:12,610 --> 00:23:14,955 >> Jadi, ketika Anda menempatkan website Anda keluar, dan Anda telah benar-benar keren 473 00:23:14,955 --> 00:23:17,230 desain, mudah-mudahan Anda membuat proyek akhir yang mengagumkan. 474 00:23:17,230 --> 00:23:18,370 Setiap Anda semacam ingin meletakkannya di luar sana. 475 00:23:18,370 --> 00:23:21,420 Anda ingin memastikan bahwa apa pun Anda mengambil dari pengguna, jika itu 476 00:23:21,420 --> 00:23:25,310 informasi identitas pribadi, Anda ingin memastikan Anda sedang benar-benar 477 00:23:25,310 --> 00:23:26,560 hati-hati dengan itu. 478 00:23:26,560 --> 00:23:29,670 479 00:23:29,670 --> 00:23:31,080 >> Injeksi Shell. 480 00:23:31,080 --> 00:23:31,350 OK. 481 00:23:31,350 --> 00:23:37,590 Injeksi Shell memungkinkan penyusup untuk mendapatkan akses ke baris perintah Anda yang sebenarnya 482 00:23:37,590 --> 00:23:39,660 di server Anda. 483 00:23:39,660 --> 00:23:44,060 Dan dia mampu menjalankan kode bahwa Anda tidak dapat mengontrol. 484 00:23:44,060 --> 00:23:49,560 Mari kita mengambil contoh dari hal ini string yang indah di sini. 485 00:23:49,560 --> 00:23:55,570 Jika kita masuk ke website lagi, aku akan masuk ke kode injeksi. 486 00:23:55,570 --> 00:23:58,910 Jadi apa yang dilakukan adalah - 487 00:23:58,910 --> 00:24:00,420 itu juga apa yang kami melihat sebelumnya. 488 00:24:00,420 --> 00:24:11,200 Kami membiarkan pengguna dimasukkan ke dalam apa pun yang dia inginkan, dan itu akan mencetak 489 00:24:11,200 --> 00:24:12,220 apa pun yang Anda inginkan. 490 00:24:12,220 --> 00:24:13,890 >> Jadi aku akan menempatkan panggilan. 491 00:24:13,890 --> 00:24:15,540 Apa yang dilakukan adalah - 492 00:24:15,540 --> 00:24:16,940 itu akan mulai dengan menggabungkan. 493 00:24:16,940 --> 00:24:19,520 Sehingga akan membiarkan saya menjalankan apapun perintah berjalan seseorang 494 00:24:19,520 --> 00:24:21,500 sebelum dan perintah saya. 495 00:24:21,500 --> 00:24:23,980 Dan aku menjalankan perintah sistem. 496 00:24:23,980 --> 00:24:27,310 Dan ini string terakhir adalah - ingat apa yang saya berbicara dengan kalian tentang, 497 00:24:27,310 --> 00:24:31,725 sedangkan Anda harus menyandikan dalam metode URL. 498 00:24:31,725 --> 00:24:35,010 499 00:24:35,010 --> 00:24:36,992 Jika saya menjalankan ini sekarang - 500 00:24:36,992 --> 00:24:39,150 Aku akan menunjukkan kepada Anda di sini - 501 00:24:39,150 --> 00:24:41,100 Anda akan melihat bahwa saya akhirnya up menjalankan perintah. 502 00:24:41,100 --> 00:24:45,700 503 00:24:45,700 --> 00:24:49,320 >> Ini sebenarnya adalah server yang sebenarnya bahwa website saya berjalan di. 504 00:24:49,320 --> 00:24:55,840 505 00:24:55,840 --> 00:24:58,510 Jadi kita tidak menginginkan hal itu, karena saya dapat menjalankan - 506 00:24:58,510 --> 00:25:00,320 server ini bukan milikku. 507 00:25:00,320 --> 00:25:04,030 Jadi saya tidak ingin mengacaukan nya adik, Server Marcus. 508 00:25:04,030 --> 00:25:07,470 Tapi Anda bisa menjalankan perintah lebih yang berbahaya. 509 00:25:07,470 --> 00:25:11,885 Dan berpotensi, Anda bisa menghapus file, menghapus direktori. 510 00:25:11,885 --> 00:25:14,390 511 00:25:14,390 --> 00:25:17,970 Saya dapat menghapus direktori tertentu jika Aku ingin, tapi aku tidak ingin 512 00:25:17,970 --> 00:25:19,530 melakukan itu untuk Marcus. 513 00:25:19,530 --> 00:25:20,420 Dia pria yang baik. 514 00:25:20,420 --> 00:25:21,470 Dia biarkan aku meminjam server-nya. 515 00:25:21,470 --> 00:25:24,620 Jadi aku akan membiarkan dia dari pada yang baik. 516 00:25:24,620 --> 00:25:32,280 >> Jadi apa yang kita tidak ingin menggunakan - kita tidak ingin menggunakan eval atau sistem. 517 00:25:32,280 --> 00:25:34,755 Eval atau sistem memungkinkan kita untuk membuat panggilan sistem tersebut. 518 00:25:34,755 --> 00:25:37,410 519 00:25:37,410 --> 00:25:38,410 Berarti eval mengevaluasi. 520 00:25:38,410 --> 00:25:40,790 Sistem berarti apa yang saya berlari. 521 00:25:40,790 --> 00:25:42,490 Ini menjalankan sesuatu dalam sistem. 522 00:25:42,490 --> 00:25:46,730 Tapi kita bisa melarang hal-hal ini di PHP sehingga kita tidak menggunakannya. 523 00:25:46,730 --> 00:25:47,400 Dan file upload. 524 00:25:47,400 --> 00:25:49,180 Saya akan melakukan yang mengagumkan hal dengan file upload. 525 00:25:49,180 --> 00:25:52,740 Tapi seperti saya katakan guys, file saya Hal upload tidak bekerja. 526 00:25:52,740 --> 00:25:54,590 Jika saya harus meng-upload file sekarang - 527 00:25:54,590 --> 00:25:57,120 528 00:25:57,120 --> 00:26:00,830 jika saya harus meng-upload file, dan itu gambar - 529 00:26:00,830 --> 00:26:03,180 Anda memiliki hal meng-upload itu gambar. 530 00:26:03,180 --> 00:26:03,660 Itu baik-baik saja. 531 00:26:03,660 --> 00:26:04,280 Tidak ada yang terjadi. 532 00:26:04,280 --> 00:26:10,840 >> Tapi jika Anda memiliki file upload, untuk contoh, dan pengguna benar-benar upload 533 00:26:10,840 --> 00:26:19,220 file PHP atau file exe atau sesuatu seperti itu, maka Anda bisa berpotensi 534 00:26:19,220 --> 00:26:19,740 memiliki masalah. 535 00:26:19,740 --> 00:26:21,390 Ini bekerja sebelumnya. 536 00:26:21,390 --> 00:26:25,202 Sayangnya bagi saya, itu tidak bekerja lagi. 537 00:26:25,202 --> 00:26:30,230 Jika saya, misalnya, meng-upload file ini, aku tidak mendapatkan izin untuk meng-upload 538 00:26:30,230 --> 00:26:33,400 file karena server tidak menjadi milikku. 539 00:26:33,400 --> 00:26:38,670 Jadi orang itu benar-benar cerdas. 540 00:26:38,670 --> 00:26:39,610 >> Jadi kita tidak mau - 541 00:26:39,610 --> 00:26:40,130 Aku akan menunjukkan kalian - 542 00:26:40,130 --> 00:26:41,840 OK, ini adalah beberapa alat yang benar-benar keren. 543 00:26:41,840 --> 00:26:45,100 Jadi ini - 544 00:26:45,100 --> 00:26:47,715 masuk ke - jika kalian memiliki Firefox - mudah-mudahan Anda lakukan. 545 00:26:47,715 --> 00:26:54,260 Ada dua add-ons yang disebut SQL Inject Me and Cross-Site Script Me. 546 00:26:54,260 --> 00:26:56,870 Mereka membuka sedikit sisi bar di samping. 547 00:26:56,870 --> 00:27:01,480 Dan jika saya harus pergi ke CS60 misalnya - 548 00:27:01,480 --> 00:27:04,210 jadi apa yang dilakukannya itu terlihat untuk semua bentuk yang - 549 00:27:04,210 --> 00:27:07,220 550 00:27:07,220 --> 00:27:08,760 mudah-mudahan, saya tidak akan mendapatkan dalam kesulitan untuk ini. 551 00:27:08,760 --> 00:27:09,190 >> Tapi OK. 552 00:27:09,190 --> 00:27:12,600 Berikut sistem pin. 553 00:27:12,600 --> 00:27:18,946 Jadi ketika saya mulai mencari lubang di sistem, hal pertama yang saya lakukan adalah 554 00:27:18,946 --> 00:27:21,820 membuka kecil yang indah ini alat di samping. 555 00:27:21,820 --> 00:27:24,160 Dan aku akan menguji bentuk dengan serangan auto. 556 00:27:24,160 --> 00:27:28,510 Jadi apa yang dilakukan itu akan perlahan-lahan membuka banyak browser. 557 00:27:28,510 --> 00:27:29,930 Berikut sekelompok browser. 558 00:27:29,930 --> 00:27:33,320 Dan itu mencoba setiap kombinasi tunggal cross-site scripting 559 00:27:33,320 --> 00:27:37,380 bahwa ada kemungkinan yaitu, jika Anda lihat di samping. 560 00:27:37,380 --> 00:27:42,080 >> Dan itu akan memberi saya hasil semacam apa jawabannya. 561 00:27:42,080 --> 00:27:42,860 Semua lulus. 562 00:27:42,860 --> 00:27:43,910 Jelas, mereka semua lulus. 563 00:27:43,910 --> 00:27:46,190 Maksudku, mereka benar-benar pintar orang di sana. 564 00:27:46,190 --> 00:27:48,010 Tapi jika saya harus menjalankan - 565 00:27:48,010 --> 00:27:52,050 Aku sudah kali sebelum ketika saya menjalankan ini pada proyek-proyek akhir siswa. 566 00:27:52,050 --> 00:27:56,080 Saya cukup menjalankan SQL Inject Me dengan semua serangan yang berbeda. 567 00:27:56,080 --> 00:28:00,080 Dan itu mencoba untuk SQL inject pin server ini. 568 00:28:00,080 --> 00:28:03,590 Jadi jika kita gulir ke bawah, untuk Misalnya, ia mengatakan - 569 00:28:03,590 --> 00:28:04,960 ini baik jika ia mengembalikan. 570 00:28:04,960 --> 00:28:08,250 >> Jadi diuji beberapa nilai tertentu. 571 00:28:08,250 --> 00:28:11,170 Dan server kembali sebuah kode yang negatif. 572 00:28:11,170 --> 00:28:11,780 Hapus sementara. 573 00:28:11,780 --> 00:28:13,030 Ini bagus. 574 00:28:13,030 --> 00:28:17,050 575 00:28:17,050 --> 00:28:20,750 Akan mencoba semua tes ini. 576 00:28:20,750 --> 00:28:21,790 Jadi Anda hanya bisa menjalankan - 577 00:28:21,790 --> 00:28:27,860 Aku berharap aku bisa menemukan sebuah website yang nyata cepat yang akan membiarkan saya - 578 00:28:27,860 --> 00:28:29,110 mungkin toko CS50. 579 00:28:29,110 --> 00:28:43,890 580 00:28:43,890 --> 00:28:45,711 >> Wow, ini akan mengambil terlalu lama. 581 00:28:45,711 --> 00:28:53,090 582 00:28:53,090 --> 00:28:55,130 Aku akan membiarkan tes pertama tidak selesai tepat. 583 00:28:55,130 --> 00:28:57,330 Jadi itu mengeluh. 584 00:28:57,330 --> 00:28:58,470 Jadi ini adalah tiga hal. 585 00:28:58,470 --> 00:29:00,430 Alat ini gratis. 586 00:29:00,430 --> 00:29:03,960 Anda dapat men-download dan menjalankan mereka di situs web Anda, dan akan memberitahu Anda jika 587 00:29:03,960 --> 00:29:06,650 Anda memiliki cross-site scripting, jika Anda memiliki SQL, jika Anda memiliki 588 00:29:06,650 --> 00:29:07,900 sesuatu dari sejenisnya. 589 00:29:07,900 --> 00:29:12,230 590 00:29:12,230 --> 00:29:14,500 Aku agak mengacaukan. 591 00:29:14,500 --> 00:29:15,550 >> Apa yang penting - 592 00:29:15,550 --> 00:29:17,900 OK, jadi tidak pernah percaya pengguna. 593 00:29:17,900 --> 00:29:21,920 Apapun masukan user Anda, membuat Pastikan Anda membersihkan, Anda membersihkannya, 594 00:29:21,920 --> 00:29:25,300 Anda memeriksa hal yang benar, bahwa itu memberi Anda apa yang Anda 595 00:29:25,300 --> 00:29:28,240 ingin dia memberi Anda. 596 00:29:28,240 --> 00:29:32,460 Selalu diperbarui pada apa kerangka bahwa Anda benar-benar menggunakan. 597 00:29:32,460 --> 00:29:34,630 Jika Anda menggunakan sesuatu seperti bootstrap - 598 00:29:34,630 --> 00:29:36,340 Aku tahu kalian akan menggunakan bootstrap karena dia akan pergi 599 00:29:36,340 --> 00:29:38,140 atas hal ini segera di kelas - 600 00:29:38,140 --> 00:29:43,120 dan Wordpress atau sesuatu seperti itu, biasanya ini bisa hacked. 601 00:29:43,120 --> 00:29:44,770 >> Dan kemudian Anda bahkan tidak tahu. 602 00:29:44,770 --> 00:29:45,800 Kau hanya menjalankan website Anda. 603 00:29:45,800 --> 00:29:47,360 Dan itu benar-benar aman. 604 00:29:47,360 --> 00:29:51,730 Dan Anda turun. 605 00:29:51,730 --> 00:29:54,000 Jadi aku memancing benar-benar awal. 606 00:29:54,000 --> 00:29:55,770 Tapi aku ingin berterima kasih pentest Labs. 607 00:29:55,770 --> 00:29:58,140 Aku akan menunjukkan kalian sesuatu disebut pentest Labs. 608 00:29:58,140 --> 00:30:05,000 Jika kalian benar-benar tertarik apa keamanan sebenarnya, ada 609 00:30:05,000 --> 00:30:07,300 situs web disebut pentest Labs jika kalian pergi ke sana sekarang. 610 00:30:07,300 --> 00:30:10,730 Oh, well, bukan itu. 611 00:30:10,730 --> 00:30:12,030 Aku hanya akan menjalankan seperti ini. 612 00:30:12,030 --> 00:30:14,400 Google memberitahu saya jawabannya. 613 00:30:14,400 --> 00:30:16,590 >> OK. 614 00:30:16,590 --> 00:30:19,030 Dan itu mengajarkan Anda gunakan - sehingga mengatakan, belajar penetrasi web 615 00:30:19,030 --> 00:30:21,060 pengujian dengan cara yang benar. 616 00:30:21,060 --> 00:30:23,650 Ini mengajarkan Anda - 617 00:30:23,650 --> 00:30:25,150 mudah-mudahan, Anda orang yang etis. 618 00:30:25,150 --> 00:30:29,200 Tapi itu mengajarkan Anda bagaimana Anda dapat melihat bagaimana Anda bisa masuk ke dalam website. 619 00:30:29,200 --> 00:30:31,130 Dan jika Anda belajar bagaimana Anda dapat masuk ke dalam website, Anda dapat belajar bagaimana 620 00:30:31,130 --> 00:30:34,960 melindungi diri dari mendapatkan dalam website. 621 00:30:34,960 --> 00:30:39,100 Biarkan aku memperbesar karena mungkin kalian tidak melihat hak ini. 622 00:30:39,100 --> 00:30:46,350 >> Dari injeksi SQL untuk shell, sehingga semacam bagaimana saya bisa dapatkan dari SQL 623 00:30:46,350 --> 00:30:48,530 injeksi untuk membayar. 624 00:30:48,530 --> 00:30:53,890 Dan Anda men-download mesin virtual ini. 625 00:30:53,890 --> 00:30:55,690 Dan mesin virtual yang sudah datang dengan website yang Anda 626 00:30:55,690 --> 00:30:56,780 akan mencobanya. 627 00:30:56,780 --> 00:30:58,030 Anda men-download PDF ini. 628 00:30:58,030 --> 00:31:03,610 629 00:31:03,610 --> 00:31:08,370 Dan ia akan menampilkan baris demi baris apa yang harus Anda lakukan, apa yang Anda memeriksa. 630 00:31:08,370 --> 00:31:14,560 Ini adalah apa yang sebenarnya penyerang tidak masuk ke dalam sebuah situs web. 631 00:31:14,560 --> 00:31:15,750 >> Dan beberapa dari hal ini adalah rumit. 632 00:31:15,750 --> 00:31:17,520 Aku berharap aku bisa pergi lebih lebih hal dengan kalian. 633 00:31:17,520 --> 00:31:21,090 Tapi aku khawatir bahwa kalian belum benar-benar - 634 00:31:21,090 --> 00:31:23,090 ini adalah apa yang saya pergi dengan kalian, tes web 635 00:31:23,090 --> 00:31:26,830 untuk pengujian penetrasi. 636 00:31:26,830 --> 00:31:33,540 Tidak benar-benar tahu apa yang SQL dan apa - 637 00:31:33,540 --> 00:31:35,960 Seminar carl Jackson mengagumkan juga. 638 00:31:35,960 --> 00:31:37,360 Kalian tidak tahu semacam apa ini. 639 00:31:37,360 --> 00:31:39,450 Tetapi jika Anda pergi ke website ini, dan Anda mendownload tutorial ini dan ini 640 00:31:39,450 --> 00:31:43,290 PDF, Anda dapat melihat pada semacam apa bidang keamanan benar-benar 641 00:31:43,290 --> 00:31:46,940 dalam pengujian penetrasi, melihat bagaimana Anda bisa masuk ke dalam situs dan melindungi 642 00:31:46,940 --> 00:31:48,020 diri dari itu. 643 00:31:48,020 --> 00:31:56,360 >> Jadi jika saya membuat gambaran super cepat, itu akan mencegah cross-site scripting. 644 00:31:56,360 --> 00:32:00,160 Anda ingin menggunakan htmlspecialchars setiap mengatur waktu input pengguna sesuatu. 645 00:32:00,160 --> 00:32:01,580 Mencegah SQL injection. 646 00:32:01,580 --> 00:32:04,510 Jika Anda melakukannya, Anda sudah lebih baik dari Harvard adalah 647 00:32:04,510 --> 00:32:06,530 ketika mereka mendapat dilanggar. 648 00:32:06,530 --> 00:32:10,510 Dan pastikan password Anda tidak dalam teks biasa. 649 00:32:10,510 --> 00:32:16,220 Pastikan Anda tidak hanya salah satu cara hash mereka tetapi bahwa Anda menggunakan crypt, PHP 650 00:32:16,220 --> 00:32:18,670 fungsi yang saya menunjukkan kalian. 651 00:32:18,670 --> 00:32:20,060 Dengan cara itu, Anda harus baik. 652 00:32:20,060 --> 00:32:25,830 >> Juga, jika teman Anda membiarkan Anda, jalankan SQL Inject Me di situs Web mereka. 653 00:32:25,830 --> 00:32:28,140 Jalankan cross-site scripting di situs Web mereka. 654 00:32:28,140 --> 00:32:33,720 Dan Anda akan melihat banyak situs ini memiliki satu ton kerentanan. 655 00:32:33,720 --> 00:32:40,400 Ini luar biasa berapa banyak orang lupa untuk membersihkan database mereka atau untuk membuat 656 00:32:40,400 --> 00:32:46,340 yakin apa yang memasukkan orang tersebut bukan kode script. 657 00:32:46,340 --> 00:32:47,200 OK. 658 00:32:47,200 --> 00:32:49,182 Aku semacam berakhir benar-benar awal. 659 00:32:49,182 --> 00:32:56,510 Tetapi jika seseorang memiliki pertanyaan tentang apa-apa, Anda bisa menembak saya sebuah pertanyaan. 660 00:32:56,510 --> 00:32:56,630 Ya. 661 00:32:56,630 --> 00:32:56,970 Pergi, pergi. 662 00:32:56,970 --> 00:32:59,846 >> AUDIENCE: Saya hanya ingin bertanya, Anda dapat menjelaskan bagaimana file 663 00:32:59,846 --> 00:33:03,160 meng-upload persis bekerja. 664 00:33:03,160 --> 00:33:03,480 >> LUCIANO ARANGO: Ya. 665 00:33:03,480 --> 00:33:06,350 Jadi biarkan saya menunjukkan file meng-upload cepat. 666 00:33:06,350 --> 00:33:11,300 Jadi file upload - 667 00:33:11,300 --> 00:33:14,500 masalah wit file upload sekarang adalah bahwa - 668 00:33:14,500 --> 00:33:18,541 Aku akan membuka kode sehingga kalian melihat kode di belakang layar. 669 00:33:18,541 --> 00:33:22,390 670 00:33:22,390 --> 00:33:24,305 Dan itu adalah meng-upload. 671 00:33:24,305 --> 00:33:28,030 672 00:33:28,030 --> 00:33:31,560 Berikut adalah kode untuk file uploader. 673 00:33:31,560 --> 00:33:33,980 >> Kami sedang berusaha untuk masuk ke ini direktori di sini. 674 00:33:33,980 --> 00:33:37,380 675 00:33:37,380 --> 00:33:44,880 Dan kami berusaha untuk, sekali kita input , file isset - sehingga ketika ada 676 00:33:44,880 --> 00:33:50,900 file dalam FILES, gambar itu, maka kami mencoba untuk memindahkannya ke sini. 677 00:33:50,900 --> 00:33:51,910 Kami ambil file di sini. 678 00:33:51,910 --> 00:33:58,350 Metode ini POST, jenis, gambar, berkas. 679 00:33:58,350 --> 00:33:59,630 Dan kami akan mengirimkan file ini. 680 00:33:59,630 --> 00:34:03,910 Dan kemudian setelah kami mendapatkannya, sehingga setelah file memiliki gambar, kami mencoba untuk mengirimkannya 681 00:34:03,910 --> 00:34:05,060 ke direktori ini. 682 00:34:05,060 --> 00:34:09,814 >> Masalahnya adalah bahwa website ini tidak membiarkan saya pergi ke direktori ini, 683 00:34:09,814 --> 00:34:12,239 karena tidak ingin aku kembali. 684 00:34:12,239 --> 00:34:13,489 Ia tidak ingin aku pergi - 685 00:34:13,489 --> 00:34:15,620 686 00:34:15,620 --> 00:34:17,070 Aku harus pergi - jadi inilah meng-upload. 687 00:34:17,070 --> 00:34:17,639 Berikut gambar. 688 00:34:17,639 --> 00:34:21,780 Aku harus pergi sepanjang perjalanan kembali ke awal dan meletakkannya di sana dan kemudian 689 00:34:21,780 --> 00:34:23,820 pergi dan memasukkannya ke dalam direktori. 690 00:34:23,820 --> 00:34:30,000 Jadi jika saya menjalankan jendela terminal, dan saya ingin memindahkan file - 691 00:34:30,000 --> 00:34:30,409 [Tak terdengar] 692 00:34:30,409 --> 00:34:32,159 bisa melihatnya. 693 00:34:32,159 --> 00:34:37,940 Jika saya ingin memindahkan file, saya memiliki untuk menempatkan nama file dan kemudian 694 00:34:37,940 --> 00:34:40,860 path lengkap saya ingin mengirim ke. 695 00:34:40,860 --> 00:34:45,110 >> Dan kemudian server tidak membiarkan saya kembali. 696 00:34:45,110 --> 00:34:46,929 Dan sehingga tidak membiarkan saya mendapatkan file tersebut. 697 00:34:46,929 --> 00:34:47,670 Tapi biasanya - 698 00:34:47,670 --> 00:34:49,360 jadi ada kode untuk upload file. 699 00:34:49,360 --> 00:34:52,260 Jadi biasanya apa yang akan terjadi adalah bahwa Orang tidak memeriksa apakah file saya 700 00:34:52,260 --> 00:34:57,920 berakhir dengan jpeg., jadi saya akan ingin memeriksa. 701 00:34:57,920 --> 00:35:00,054 Mari saya membuka contoh terlalu cepat. 702 00:35:00,054 --> 00:35:07,766 703 00:35:07,766 --> 00:35:08,260 >> OK. 704 00:35:08,260 --> 00:35:09,230 Orang ini benar - 705 00:35:09,230 --> 00:35:11,980 sehingga contoh dua adalah memeriksa jika preg_match - 706 00:35:11,980 --> 00:35:14,180 di sini adalah di sini - 707 00:35:14,180 --> 00:35:19,660 memastikan bahwa berakhir dengan PHP, yang baik. 708 00:35:19,660 --> 00:35:20,580 Ini bagus. 709 00:35:20,580 --> 00:35:22,820 Tapi ada yang sangat besar masalah dengan hal ini. 710 00:35:22,820 --> 00:35:24,600 Ini bagus. 711 00:35:24,600 --> 00:35:44,190 Tapi jika saya harus menempatkan file bernama myfavoritepicture.php.jpeg, aku bisa 712 00:35:44,190 --> 00:35:50,060 masih berpotensi menyingkirkan jpeg dan menjalankan it.k Itu PHP berbahaya. 713 00:35:50,060 --> 00:35:53,850 Anda tidak ingin orang untuk dapat untuk menjalankan kode pada website Anda. 714 00:35:53,850 --> 00:35:55,750 >> Tapi kemudian jpeg. Memungkinkan itu berlalu. 715 00:35:55,750 --> 00:36:00,720 Idenya adalah apa yang Anda ingin lakukan tidak mengambil file, A. Tapi, OK, apa 716 00:36:00,720 --> 00:36:07,500 Anda benar-benar ingin lakukan adalah memastikan bahwa Anda baca di seluruh dunia. 717 00:36:07,500 --> 00:36:08,720 Dan tidak ada. Php di dalamnya. 718 00:36:08,720 --> 00:36:10,500 Tidak ada php dalam. nama seluruh file. 719 00:36:10,500 --> 00:36:12,780 >> AUDIENCE: Tapi Anda bisa menempatkan. jpeg di ujungnya. 720 00:36:12,780 --> 00:36:15,830 Server masih menjalankan kode. 721 00:36:15,830 --> 00:36:16,870 >> LUCIANO ARANGO: Tidak, itu tidak akan berjalan di awal. 722 00:36:16,870 --> 00:36:22,310 Anda harus kembali dan mencoba untuk melihat apakah Anda bisa - 723 00:36:22,310 --> 00:36:24,210 >> AUDIENCE: Jadi kita harus - 724 00:36:24,210 --> 00:36:26,020 OK, hanya satu set yang melibatkan - 725 00:36:26,020 --> 00:36:26,936 >> LUCIANO ARANGO: Ya. 726 00:36:26,936 --> 00:36:29,230 >> AUDIENCE: OK. 727 00:36:29,230 --> 00:36:31,486 >> LUCIANO ARANGO: Ya. 728 00:36:31,486 --> 00:36:31,900 OK. 729 00:36:31,900 --> 00:36:32,865 Ada pertanyaan lain? 730 00:36:32,865 --> 00:36:33,180 OK. 731 00:36:33,180 --> 00:36:37,350 Aku akan meninggalkan ini dan mengurutkan dari mencoba untuk melihat apakah kalian bisa - 732 00:36:37,350 --> 00:36:40,490 yang lain adalah sedikit lebih rumit karena mereka memerlukan banyak 733 00:36:40,490 --> 00:36:44,050 pengetahuan lebih tentang SQL dari sekedar pengetahuan awal web SQL dan 734 00:36:44,050 --> 00:36:47,010 apa JavaScript. 735 00:36:47,010 --> 00:36:49,730 Tapi aku akan mencoba untuk menjaga hal ini, dan mudah-mudahan kalian akan belajar 736 00:36:49,730 --> 00:36:53,230 tentang hal ini dan mencoba untuk mengambil mengintip di apa yang dapat Anda lakukan dan berapa banyak contoh 737 00:36:53,230 --> 00:36:54,420 Anda bisa mendapatkan melalui. 738 00:36:54,420 --> 00:36:56,020 >> Ada yang punya lain pertanyaan tentang hal itu? 739 00:36:56,020 --> 00:36:59,387 740 00:36:59,387 --> 00:37:00,350 Silakan. 741 00:37:00,350 --> 00:37:01,170 Ya, menembak, menembak. 742 00:37:01,170 --> 00:37:01,580 Ya, silakan. 743 00:37:01,580 --> 00:37:01,850 Silakan. 744 00:37:01,850 --> 00:37:02,310 >> AUDIENCE: OK. 745 00:37:02,310 --> 00:37:08,870 Jadi saya mendengar tentang bagaimana Quotes Sihir tidak cukup aman. 746 00:37:08,870 --> 00:37:09,280 >> LUCIANO ARANGO: Apa - 747 00:37:09,280 --> 00:37:10,110 Magic Quotes? 748 00:37:10,110 --> 00:37:10,595 >> AUDIENCE: Ya. 749 00:37:10,595 --> 00:37:15,445 Jadi itu menambah - sehingga setiap kali Anda masukan sesuatu, selalu menambahkan tanda kutip. 750 00:37:15,445 --> 00:37:15,930 >> LUCIANO ARANGO: Ya. 751 00:37:15,930 --> 00:37:16,000 Ya. 752 00:37:16,000 --> 00:37:16,496 OK. 753 00:37:16,496 --> 00:37:19,113 >> AUDIENCE: Dan kemudian aku meskipun yang bekerja, tapi kemudian saya mencari itu. 754 00:37:19,113 --> 00:37:21,648 Dan katanya itu tidak baik. 755 00:37:21,648 --> 00:37:23,050 Tapi aku tidak yakin mengapa. 756 00:37:23,050 --> 00:37:23,360 >> LUCIANO ARANGO: Ya. 757 00:37:23,360 --> 00:37:26,240 >> AUDIENCE: Jangan gunakan Magic Quotes, karena itu tidak aman. 758 00:37:26,240 --> 00:37:26,360 >> LUCIANO ARANGO: OK. 759 00:37:26,360 --> 00:37:31,735 Jadi Magic Quotes adalah ketika Anda memasukkan SQL dan sudah menambahkan kutipan untuk Anda. 760 00:37:31,735 --> 00:37:33,520 >> AUDIENCE: Selalu menambahkan kutipan sekitar apa pun yang Anda menempatkan masuk 761 00:37:33,520 --> 00:37:34,210 >> LUCIANO ARANGO: Ya. 762 00:37:34,210 --> 00:37:37,190 Jadi masalah dengan itu adalah bahwa - 763 00:37:37,190 --> 00:37:38,445 Aku akan melihat di - 764 00:37:38,445 --> 00:37:41,390 >> AUDIENCE: Bagaimana cara mendapatkan pernyataan SQL? 765 00:37:41,390 --> 00:37:44,690 Atau aku kira itu bisa seperti kutipan pilih. 766 00:37:44,690 --> 00:37:49,030 >> LUCIANO ARANGO: Ya, Anda perlu kutipan yang baik untuk SQL. 767 00:37:49,030 --> 00:37:52,900 >> AUDIENCE: Tidak, tapi server melakukannya untuk Anda. 768 00:37:52,900 --> 00:37:54,460 >> LUCIANO ARANGO: Ini kutipan kecil di sini, ini kutipan kecil? 769 00:37:54,460 --> 00:37:55,670 >> AUDIENCE: Ya. 770 00:37:55,670 --> 00:37:56,450 >> LUCIANO ARANGO: Ya. 771 00:37:56,450 --> 00:37:59,860 Masalahnya adalah bahwa Anda dapat komentar keluar yang terakhir - 772 00:37:59,860 --> 00:38:05,770 OK, jadi apa yang bisa saya lakukan adalah saya dapat komentar keluar - jadi mari kita lihat - biarkan aku 773 00:38:05,770 --> 00:38:07,920 membuka file text edit. 774 00:38:07,920 --> 00:38:09,610 Mari saya hanya mengedit ini di sini langsung. 775 00:38:09,610 --> 00:38:19,510 776 00:38:19,510 --> 00:38:20,400 OK. 777 00:38:20,400 --> 00:38:23,710 Bisakah kalian melihat bahwa jelas? 778 00:38:23,710 --> 00:38:29,730 Apa yang dapat saya lakukan adalah saya dapat komentar keluar yang terakhir. 779 00:38:29,730 --> 00:38:32,190 Ini akan komentar pada yang terakhir. 780 00:38:32,190 --> 00:38:36,760 Dan kemudian aku akan menempatkan satu di sini, menempatkan semua barang-barang berbahaya di sini. 781 00:38:36,760 --> 00:38:39,840 782 00:38:39,840 --> 00:38:42,630 >> Jadi pengguna sebenarnya memasukkan, kan? 783 00:38:42,630 --> 00:38:45,230 Pengguna tidak memasukkan hal, kan? 784 00:38:45,230 --> 00:38:47,430 Ini adalah apa yang akan saya masukan sebagai orang yang mencoba masuk ke dalam. 785 00:38:47,430 --> 00:38:49,430 Aku akan dimasukkan ke dalam - 786 00:38:49,430 --> 00:38:59,290 787 00:38:59,290 --> 00:39:00,180 itu salah satu tanda kutip. 788 00:39:00,180 --> 00:39:01,760 Hanya saja berlekuk-lekuk oleh kesalahan. 789 00:39:01,760 --> 00:39:15,080 790 00:39:15,080 --> 00:39:19,400 Dan kemudian apa kode adalah akan melakukan - 791 00:39:19,400 --> 00:39:20,190 maaf, aku akan mengambil ini. 792 00:39:20,190 --> 00:39:22,170 Apa kode yang akan dilakukan adalah itu akan menambah pertama 793 00:39:22,170 --> 00:39:24,030 tanda kutip di sini. 794 00:39:24,030 --> 00:39:26,040 Dan itu akan menambah terakhir tanda kutip juga. 795 00:39:26,040 --> 00:39:29,350 796 00:39:29,350 --> 00:39:33,270 >> Dan itu juga akan menambahkan lalu, tanda kutip lalu. 797 00:39:33,270 --> 00:39:37,380 Tapi aku mengomentari kutipan ini menandai keluar, sehingga mereka tidak lari. 798 00:39:37,380 --> 00:39:41,440 Dan aku menyelesaikan kutipan ini menandai di sini. 799 00:39:41,440 --> 00:39:42,290 Apakah Anda mengerti? 800 00:39:42,290 --> 00:39:43,750 Apakah Anda tersesat? 801 00:39:43,750 --> 00:39:45,880 Saya dapat komentar kutipan terakhir mark, dan mengurus 802 00:39:45,880 --> 00:39:46,680 tanda kutip pertama. 803 00:39:46,680 --> 00:39:47,350 >> AUDIENCE: Dan hanya finish yang pertama. 804 00:39:47,350 --> 00:39:47,480 >> LUCIANO ARANGO: Ya. 805 00:39:47,480 --> 00:39:48,400 Dan hanya menyelesaikan yang pertama. 806 00:39:48,400 --> 00:39:48,790 Ya, itu benar. 807 00:39:48,790 --> 00:39:50,800 Itulah yang bisa saya lakukan. 808 00:39:50,800 --> 00:39:51,890 Ya. 809 00:39:51,890 --> 00:39:52,980 Ada pertanyaan lain seperti itu? 810 00:39:52,980 --> 00:39:54,230 Itu pertanyaan yang bagus. 811 00:39:54,230 --> 00:39:56,960 812 00:39:56,960 --> 00:39:59,790 Tidak, ya, mungkin. 813 00:39:59,790 --> 00:40:06,150 Mudah-mudahan, kalian akan membuat semacam lebih masuk akal ketika Anda belajar SQL dan 814 00:40:06,150 --> 00:40:06,650 hal-hal seperti itu. 815 00:40:06,650 --> 00:40:07,980 Tapi pastikan Anda - 816 00:40:07,980 --> 00:40:10,340 menjaga alat-alat ini dalam menonton. 817 00:40:10,340 --> 00:40:12,760 Maaf, alat ini di sini. 818 00:40:12,760 --> 00:40:14,200 Alat-alat ini besar. 819 00:40:14,200 --> 00:40:17,190 Jika seseorang memiliki pertanyaan, Anda juga dapat email saya. 820 00:40:17,190 --> 00:40:19,020 Ini adalah email normal saya. 821 00:40:19,020 --> 00:40:25,015 Dan ini adalah email kantor saya, yang adalah ketika saya bekerja di LAUT. 822 00:40:25,015 --> 00:40:26,040 >> OK, terima kasih. 823 00:40:26,040 --> 00:40:26,740 Terima kasih, guys. 824 00:40:26,740 --> 00:40:27,860 Anda baik untuk pergi. 825 00:40:27,860 --> 00:40:28,830 Anda tidak harus tinggal di sini. 826 00:40:28,830 --> 00:40:29,570 Jangan bertepuk tangan. 827 00:40:29,570 --> 00:40:30,170 Itu aneh. 828 00:40:30,170 --> 00:40:31,420 OK, terima kasih, guys. 829 00:40:31,420 --> 00:40:32,320