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 Tên tôi là Luciano Arango. 4 00:00:11,550 --> 00:00:13,915 Tôi là một sinh viên năm hai trong Adams House. 5 00:00:13,915 --> 00:00:17,550 Và chúng ta sẽ nói về an ninh quốc phòng hoạt động web. 6 00:00:17,550 --> 00:00:24,220 Vì vậy, tôi làm việc cho Văn phòng Thông tin An ninh trong vùng biển. 7 00:00:24,220 --> 00:00:28,670 Và trong mùa hè, tôi thực tập tại SeguraTec, đó là một thông tin 8 00:00:28,670 --> 00:00:31,310 công ty bảo mật phục vụ cho Ngân hàng của Columbia. 9 00:00:31,310 --> 00:00:34,740 Đó chủ yếu là nơi tôi đã học những gì tôi đã học được cho đến nay. 10 00:00:34,740 --> 00:00:37,990 >> Và vì vậy một số các tài liệu mà chúng tôi sẽ đi qua ngày hôm nay, chúng tôi có không 11 00:00:37,990 --> 00:00:39,670 thực sự nói chuyện trong lớp. 12 00:00:39,670 --> 00:00:40,410 Nhưng chúng tôi sẽ sớm. 13 00:00:40,410 --> 00:00:42,360 Nó sẽ là như SQL, JavaScript. 14 00:00:42,360 --> 00:00:44,870 Và chúng tôi đã không thực sự đi qua nó. 15 00:00:44,870 --> 00:00:47,730 Vì vậy, tôi có thể sắp xếp các chuyến bay qua nó, và bạn có thể không biết một số điều. 16 00:00:47,730 --> 00:00:48,890 Nhưng ngay sau đó, bạn sẽ tìm hiểu nó. 17 00:00:48,890 --> 00:00:52,080 Và tất cả nó sẽ có ý nghĩa. 18 00:00:52,080 --> 00:00:54,010 Ngoài ra điều khác - 19 00:00:54,010 --> 00:00:55,780 ở đạo đức. 20 00:00:55,780 --> 00:01:00,560 Một số trong những điều mà bạn học, bạn có thể sử dụng theo những cách không đạo đức. 21 00:01:00,560 --> 00:01:01,950 >> Nếu nó là của bạn, chắc chắn cố gắng. 22 00:01:01,950 --> 00:01:04,500 Tôi chắc chắn thúc đẩy các bạn thử máy chủ của riêng bạn, hãy thử 23 00:01:04,500 --> 00:01:05,519 đi bên trong chúng. 24 00:01:05,519 --> 00:01:08,500 Xem bạn có thể thâm nhập vào chúng, nếu bạn có thể nhận được bên trong chúng. 25 00:01:08,500 --> 00:01:09,560 Nhưng không bất cứ ai khác. 26 00:01:09,560 --> 00:01:12,390 Cảnh sát không thực sự thích những câu nói đùa và Nhìn chung, chúng tôi đặt này ở đây. 27 00:01:12,390 --> 00:01:14,040 Chúng tôi đã rối tung xung quanh. 28 00:01:14,040 --> 00:01:15,780 Họ nhận được thực sự tức giận. 29 00:01:15,780 --> 00:01:18,700 >> Vì vậy, đi qua trang web này. 30 00:01:18,700 --> 00:01:23,560 Tôi có nó mở ra ngay tại đây. 31 00:01:23,560 --> 00:01:26,780 Đây là một trang web, và nó có một loạt các ví dụ. 32 00:01:26,780 --> 00:01:30,000 Những gì xảy ra là ví dụ đầu tiên là loại sẽ được dễ dàng hơn rất nhiều 33 00:01:30,000 --> 00:01:33,470 so với ví dụ cuối cùng trong một ý nghĩa mà ví dụ đầu tiên 34 00:01:33,470 --> 00:01:34,970 là hoàn toàn không an toàn. 35 00:01:34,970 --> 00:01:40,850 Và cuối cùng là loại gì một bình thường người bảo mật web sẽ làm gì. 36 00:01:40,850 --> 00:01:42,760 Nhưng bạn vẫn có thể loại của được xung quanh đó. 37 00:01:42,760 --> 00:01:44,860 Và chúng ta sẽ tập trung vào một và hai, ví dụ một và hai. 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 Hãy bắt đầu với cross-site scripting. 41 00:01:52,780 --> 00:01:56,100 JavaScript chạy trên trình duyệt của khách hàng. 42 00:01:56,100 --> 00:01:59,980 Đó là một ngôn ngữ lập trình mà bạn sử dụng để chạy trên trình duyệt của khách hàng để 43 00:01:59,980 --> 00:02:04,120 bạn không cần phải cập nhật các trang web và đi lại cho máy chủ. 44 00:02:04,120 --> 00:02:04,940 Bạn chạy nó. 45 00:02:04,940 --> 00:02:08,870 Ví dụ, Facebook, bạn không có để tải lại trang web cho trạng thái mới 46 00:02:08,870 --> 00:02:09,710 cập nhật để đi lên. 47 00:02:09,710 --> 00:02:12,170 Đó là sử dụng JavaScript để tạo ra tất cả những điều này. 48 00:02:12,170 --> 00:02:16,290 Vì vậy, chúng ta có thể tiêm JavaScript độc hại vào các trang web. 49 00:02:16,290 --> 00:02:20,890 Và theo cách đó, khi chúng tôi gửi một liên kết đến một người nào đó, chúng tôi loại có thể gửi nó với 50 00:02:20,890 --> 00:02:23,050 một số mã mà chúng tôi muốn. 51 00:02:23,050 --> 00:02:26,450 >> Có liên tục và không liên tục JavaScript - 52 00:02:26,450 --> 00:02:30,640 liên tục và không liên tục cross-site kịch bản, tôi có ý nghĩa. 53 00:02:30,640 --> 00:02:33,760 Và sự khác biệt là dai dẳng là JavaScript sẽ được 54 00:02:33,760 --> 00:02:36,060 lưu trên trang web. 55 00:02:36,060 --> 00:02:39,780 Và không liên tục sẽ JavaScript mà thực sự sẽ chỉ xảy ra một lần. 56 00:02:39,780 --> 00:02:41,795 Vì vậy, chúng ta hãy xem một ví dụ thực sự nhanh chóng. 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 Vì vậy, trang web này, đơn giản, không có gì xảy ra ở đây. 60 00:02:51,620 --> 00:02:53,070 Và chúng ta sẽ cố gắng chèn một số mã JavaScript. 61 00:02:53,070 --> 00:02:58,110 Vì vậy, cách chúng tôi bắt đầu viết JavaScript là chúng tôi bắt đầu với kịch bản bắt đầu. 62 00:02:58,110 --> 00:03:00,570 Và chúng tôi đóng nó với kịch bản. 63 00:03:00,570 --> 00:03:03,770 Chúng tôi chỉ đơn giản là sẽ đưa một tin nhắn - 64 00:03:03,770 --> 00:03:05,410 Tôi sẽ chỉ cho bạn - 65 00:03:05,410 --> 00:03:06,500 cảnh báo. 66 00:03:06,500 --> 00:03:11,150 Cảnh báo là một chức năng JavaScript sử dụng để hiển thị một cái gì đó. 67 00:03:11,150 --> 00:03:12,400 Vì vậy, hãy thử nó thực sự nhanh chóng. 68 00:03:12,400 --> 00:03:15,600 69 00:03:15,600 --> 00:03:18,944 Tôi sẽ đi, xin chào cảnh báo. 70 00:03:18,944 --> 00:03:20,400 Vâng, tôi quên đặt - 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 Vì vậy, đó là đơn giản. 74 00:03:26,540 --> 00:03:28,730 >> Chúng tôi đặt JavaScript trên một trang web, và nó đến. 75 00:03:28,730 --> 00:03:31,200 Và loại chỉ xảy ra trên trang web của chúng tôi, phải không? 76 00:03:31,200 --> 00:03:33,040 Vì vậy, nó có vẻ như nó không một vấn đề, phải không? 77 00:03:33,040 --> 00:03:34,920 Ý tôi là, làm thế nào bạn có thể sử dụng này độc hại? 78 00:03:34,920 --> 00:03:39,930 Vì vậy, cách mà tin tặc làm điều này thực sự đơn giản. 79 00:03:39,930 --> 00:03:40,970 Họ sẽ lấy nó. 80 00:03:40,970 --> 00:03:43,750 Họ có thể gửi link này cho bạn. 81 00:03:43,750 --> 00:03:46,780 Nếu tôi sẽ gửi link này cho bạn ngay bây giờ, và bạn mở nó lên, nó sẽ 82 00:03:46,780 --> 00:03:51,620 nói, xin chào, nói rằng trang web của tôi là nói cho bạn chào. 83 00:03:51,620 --> 00:03:57,280 >> Và do đó, nếu tôi nói một cái gì đó chút thông minh hơn, nếu tôi kéo lên một 84 00:03:57,280 --> 00:03:59,880 Chức năng JavaScript tôi loại của đã viết - 85 00:03:59,880 --> 00:04:03,940 nhưng nếu bạn nhìn vào nó, tôi sẽ đi quá mức nó trước khi tôi đã viết nó. 86 00:04:03,940 --> 00:04:06,650 Vì vậy, chúng ta sẽ thiết lập một thời gian chờ. 87 00:04:06,650 --> 00:04:08,450 Chúng ta sẽ chờ đợi một vài giây. 88 00:04:08,450 --> 00:04:13,970 Trong thực tế, chúng ta sẽ chờ đợi, nếu Tôi không nhầm, năm giây. 89 00:04:13,970 --> 00:04:15,870 Điều này đi bằng mili giây. 90 00:04:15,870 --> 00:04:18,640 Và sau đó những gì chúng ta sẽ làm chúng ta là sẽ cảnh báo rằng đăng nhập 91 00:04:18,640 --> 00:04:21,459 timed out để đăng nhập lại in 92 00:04:21,459 --> 00:04:23,990 Và chúng ta sẽ thay đổi vị trí đến một vị trí khác nhau. 93 00:04:23,990 --> 00:04:30,370 94 00:04:30,370 --> 00:04:32,970 >> Vì vậy, nếu tôi gửi trang web này cho một người nào đó, họ sẽ được 95 00:04:32,970 --> 00:04:34,380 Đang xem xung quanh, bình tĩnh. 96 00:04:34,380 --> 00:04:35,650 Không có gì đang xảy ra. 97 00:04:35,650 --> 00:04:38,550 Và trong năm giây, nó sẽ nói, đăng nhập của bạn quá hạn. 98 00:04:38,550 --> 00:04:40,200 Xin vui lòng đăng nhập lại in 99 00:04:40,200 --> 00:04:43,400 Một khi họ click OK, tôi sẽ đưa họ đến một trang web khác. 100 00:04:43,400 --> 00:04:45,980 Có lẽ, các trang web sẽ tương tự như các trang web mà 101 00:04:45,980 --> 00:04:47,280 họ ở trước. 102 00:04:47,280 --> 00:04:50,770 Và họ sẽ đăng nhập của họ thông tin vào trang web của tôi thay vì 103 00:04:50,770 --> 00:04:51,850 trang web của họ. 104 00:04:51,850 --> 00:04:54,780 >> Và vì vậy tôi có thể gửi một người email với các liên kết này. 105 00:04:54,780 --> 00:04:56,240 Tôi nói, ồ, đây là một liên kết. 106 00:04:56,240 --> 00:04:57,290 Đây là một ngân hàng, ví dụ. 107 00:04:57,290 --> 00:05:01,390 Tôi nói, ở đây, đi vào liên kết này. 108 00:05:01,390 --> 00:05:03,730 Và một khi họ gửi, họ sẽ được duyệt web trên. 109 00:05:03,730 --> 00:05:07,560 Tôi có thể chờ 15 giây, 20 giây, và sau đó bật đó xin vui lòng đăng nhập lại 110 00:05:07,560 --> 00:05:08,840 đăng nhập lại vào. 111 00:05:08,840 --> 00:05:10,120 Các bạn có thể thử nó với rất nhiều điều. 112 00:05:10,120 --> 00:05:13,190 Nó phức tạp bởi vì các bạn chưa thấy JavaScript, do đó bạn có thể 113 00:05:13,190 --> 00:05:14,750 không biết một số chức năng. 114 00:05:14,750 --> 00:05:18,625 Nhưng tất cả các bạn phải làm là bắt đầu với kịch bản, kết thúc với kịch bản. 115 00:05:18,625 --> 00:05:22,105 116 00:05:22,105 --> 00:05:25,510 Và bạn có thể đặt bất cứ điều gì ở giữa. 117 00:05:25,510 --> 00:05:27,350 >> Cảnh báo là một chức năng, chờ đợi. 118 00:05:27,350 --> 00:05:29,365 Vị trí cửa sổ sẽ đưa bạn đến một vị trí mới. 119 00:05:29,365 --> 00:05:31,370 Nhưng bạn có thể làm nhiều hơn nữa. 120 00:05:31,370 --> 00:05:32,630 Và do đó, ý tưởng là chúng ta chấp nhận đi. 121 00:05:32,630 --> 00:05:39,350 Nếu tôi đi đến ví dụ hai, và tôi đặt trong cùng một mã này, nó 122 00:05:39,350 --> 00:05:40,210 không đi làm việc. 123 00:05:40,210 --> 00:05:43,620 Vì vậy, nó in tất cả mọi thứ vì những gì trang web này ban đầu 124 00:05:43,620 --> 00:05:50,350 không được nếu tôi đặt bất cứ điều gì ở đây, nó sẽ in ra ngay tại đây. 125 00:05:50,350 --> 00:05:52,390 Vì vậy, nó không in bất cứ điều gì ra ngoài. 126 00:05:52,390 --> 00:05:55,560 Ví dụ này là thực sự kiểm tra để xem nếu kịch bản là ở đó. 127 00:05:55,560 --> 00:05:57,163 Vì vậy, yeah, đi trước. 128 00:05:57,163 --> 00:05:57,606 Hỏi tôi. 129 00:05:57,606 --> 00:05:59,560 >> ĐỐI TƯỢNG: Không phải là gửi một nhận hoặc gửi yêu cầu? 130 00:05:59,560 --> 00:06:00,670 >> Luciano Arango: Vâng. họ gửi một yêu cầu có được. 131 00:06:00,670 --> 00:06:01,350 >> ĐỐI TƯỢNG: Đây là? 132 00:06:01,350 --> 00:06:02,490 >> Luciano Arango: Vâng. 133 00:06:02,490 --> 00:06:04,030 Ngoài ra trình duyệt sử dụng bài yêu cầu. 134 00:06:04,030 --> 00:06:07,470 Nhưng tôi đang cố gắng để hiển thị yêu cầu get để chúng ta có thể thấy là những gì 135 00:06:07,470 --> 00:06:10,760 thực sự xảy ra. 136 00:06:10,760 --> 00:06:12,880 Và do đó, nếu chúng ta nhìn vào mã này - do đó, nó không làm việc nữa. 137 00:06:12,880 --> 00:06:24,870 Và nếu chúng ta hãy nhìn vào mã này, nó sẽ là trong ví dụ hai. 138 00:06:24,870 --> 00:06:29,300 Những gì người này đang làm, người phụ trách của trình duyệt này - 139 00:06:29,300 --> 00:06:35,370 mở ra, OK - 140 00:06:35,370 --> 00:06:39,290 được thay thế kịch bản từ. 141 00:06:39,290 --> 00:06:42,850 Đây là PHP, mà các bạn might đã thấy một chút nào. 142 00:06:42,850 --> 00:06:46,250 >> Anh chỉ cần thay thế kịch bản từ tên. 143 00:06:46,250 --> 00:06:50,895 Vì vậy, tuy nhiên, nếu tôi đi trước và chỉ cần đặt trong - 144 00:06:50,895 --> 00:06:58,520 145 00:06:58,520 --> 00:07:02,360 nếu tôi lấy mã của tôi một lần nữa, và tôi sẽ để sửa đổi nó một chút. 146 00:07:02,360 --> 00:07:15,010 Thay vì kịch bản, tôi sẽ thay đổi nó cho kịch bản với một R. vốn và 147 00:07:15,010 --> 00:07:16,390 chúng ta sẽ xem mã này làm việc. 148 00:07:16,390 --> 00:07:19,090 Vì vậy, nó không in ra, đó là một dấu hiệu tốt. 149 00:07:19,090 --> 00:07:21,990 Và hy vọng trong hai giây nữa, nó sẽ bật lên. 150 00:07:21,990 --> 00:07:22,820 >> Đăng nhập của bạn quá hạn. 151 00:07:22,820 --> 00:07:23,210 OK. 152 00:07:23,210 --> 00:07:24,460 Không sao cả. 153 00:07:24,460 --> 00:07:27,670 Vì vậy, việc kiểm tra các kịch bản might không nhất thiết phải làm việc. 154 00:07:27,670 --> 00:07:28,130 Người - 155 00:07:28,130 --> 00:07:32,290 nó cũng có thể kiểm tra các kịch bản chữ hoa, kịch bản chữ thường, trường hợp str 156 00:07:32,290 --> 00:07:34,180 so sánh, chắc chắn rằng họ đang như nhau. 157 00:07:34,180 --> 00:07:38,480 Nhưng các hacker vẫn có thể làm loại gì chúng tôi đã làm trong Vigenere khi chúng tôi chuyển 158 00:07:38,480 --> 00:07:40,620 trở lại một vài ký tự, di chuyển về phía trước. 159 00:07:40,620 --> 00:07:43,470 Và nó có thể tìm ra cách để đưa kịch bản trở lại trong đó để nó có thể tiêm 160 00:07:43,470 --> 00:07:44,460 rằng kịch bản. 161 00:07:44,460 --> 00:07:50,370 >> Vì vậy, những gì bạn muốn sử dụng là htmlspecialchars để 162 00:07:50,370 --> 00:07:51,330 bảo vệ trang web của bạn. 163 00:07:51,330 --> 00:07:56,490 Và điều này không là nó làm cho chắc chắn rằng những gì bạn đưa vào - 164 00:07:56,490 --> 00:07:59,610 ví dụ, trích dẫn hay này lớn hơn hoặc ít hơn - 165 00:07:59,610 --> 00:08:04,701 được thay thế bằng một cái gì đó đó sẽ không được - 166 00:08:04,701 --> 00:08:05,951 hãy để tôi phóng to ở đây - 167 00:08:05,951 --> 00:08:08,730 168 00:08:08,730 --> 00:08:09,685 dấu và thực tế. 169 00:08:09,685 --> 00:08:13,420 Nó sẽ thay thế những người đặc biệt HTML nhân vật mà chúng ta sẽ thấy khi chúng ta 170 00:08:13,420 --> 00:08:14,670 nói về - 171 00:08:14,670 --> 00:08:18,635 172 00:08:18,635 --> 00:08:20,740 oh, điều này sẽ đưa tôi trở lại - 173 00:08:20,740 --> 00:08:24,220 174 00:08:24,220 --> 00:08:25,380 những nhân vật này ngay tại đây. 175 00:08:25,380 --> 00:08:28,180 >> Những biểu hiện một cái gì đó đang đến. 176 00:08:28,180 --> 00:08:31,570 Cho HTML, mà khung bắt đầu cho chúng ta biết một cái gì đó 177 00:08:31,570 --> 00:08:33,299 HTML liên quan đang đến. 178 00:08:33,299 --> 00:08:33,980 Và chúng tôi muốn được thoát khỏi điều đó. 179 00:08:33,980 --> 00:08:36,200 Chúng tôi không muốn đưa HTML vào một website.k Chúng tôi không muốn người sử dụng có 180 00:08:36,200 --> 00:08:40,260 có thể đặt một cái gì đó trong trang web của họ có thể ảnh hưởng đến trang web của họ, như 181 00:08:40,260 --> 00:08:43,480 kịch bản hay HTML hoặc một cái gì đó như thế. 182 00:08:43,480 --> 00:08:53,090 Điều quan trọng là bạn vệ sinh đầu vào người sử dụng. 183 00:08:53,090 --> 00:08:54,720 >> Vì vậy, người sử dụng có thể nhập vào nhiều điều. 184 00:08:54,720 --> 00:08:58,110 Anh ta có thể nhập vào một loạt các công cụ thử để lừa trình duyệt của bạn vào vẫn 185 00:08:58,110 --> 00:08:59,410 chạy mã kịch bản này. 186 00:08:59,410 --> 00:09:02,870 Những gì bạn muốn làm là không chỉ nhìn cho kịch bản, nhưng tìm kiếm tất cả mọi thứ 187 00:09:02,870 --> 00:09:04,250 đó có thể là độc hại. 188 00:09:04,250 --> 00:09:06,800 Và htmlspecialchars sẽ làm điều đó cho bạn, do đó bạn không có 189 00:09:06,800 --> 00:09:07,340 lo lắng về nó. 190 00:09:07,340 --> 00:09:12,280 Nhưng không cố gắng để làm một mình loại với mã số riêng của bạn. 191 00:09:12,280 --> 00:09:14,055 Là tất cả mọi người rõ ràng về XSS? 192 00:09:14,055 --> 00:09:14,370 >> OK. 193 00:09:14,370 --> 00:09:16,355 Chúng ta hãy đi đến SQL injection. 194 00:09:16,355 --> 00:09:21,010 Vì vậy, SQL injection có lẽ là số một lỗ hổng 195 00:09:21,010 --> 00:09:22,490 trong các trang web khác nhau. 196 00:09:22,490 --> 00:09:24,350 Ý tôi là, một ví dụ tốt - 197 00:09:24,350 --> 00:09:27,350 Tôi chỉ nghiên cứu xa cho điều này. 198 00:09:27,350 --> 00:09:34,430 Và tôi thấy bài viết này tuyệt vời, nơi Tôi thấy rằng Harvard đã vi phạm, 199 00:09:34,430 --> 00:09:35,390 đã bị hack. 200 00:09:35,390 --> 00:09:37,370 Và tôi đã tự hỏi, tốt, làm thế nào họ sẽ làm điều đó? 201 00:09:37,370 --> 00:09:41,660 Harvard là tuyệt vời nhất, hầu hết đảm bảo trường đại học bao giờ hết. 202 00:09:41,660 --> 00:09:43,850 Phải không? 203 00:09:43,850 --> 00:09:45,410 Vâng, để vi phạm các máy chủ, các tin tặc sử dụng một 204 00:09:45,410 --> 00:09:47,710 kỹ thuật gọi là SQL injection. 205 00:09:47,710 --> 00:09:50,250 >> Vì vậy, điều này xảy ra vào một ngày để cơ sở ngày. 206 00:09:50,250 --> 00:09:53,590 Người quên mất tài khoản cho SQL injection. 207 00:09:53,590 --> 00:09:54,930 Harvard không. 208 00:09:54,930 --> 00:10:00,050 Tôi nghĩ rằng nó nói ở đây, Princeton, Stanford, Cornell. 209 00:10:00,050 --> 00:10:03,550 Vì vậy, làm thế nào để chúng ta - vì vậy SQL đây là những gì tiêm được mang tất cả những 210 00:10:03,550 --> 00:10:05,668 người xuống? 211 00:10:05,668 --> 00:10:08,010 OK. 212 00:10:08,010 --> 00:10:12,090 Vì vậy, SQL là một ngôn ngữ lập trình chúng tôi sử dụng để truy cập vào cơ sở dữ liệu. 213 00:10:12,090 --> 00:10:14,560 Những gì chúng tôi làm là chúng ta chọn - 214 00:10:14,560 --> 00:10:18,510 vì vậy những gì đọc này ngay bây giờ là chọn tất cả mọi thứ từ bảng. 215 00:10:18,510 --> 00:10:22,640 >> SQL, nó thay đổi vào các cơ sở dữ liệu có bảng đầy đủ thông tin. 216 00:10:22,640 --> 00:10:26,550 Vì vậy, chọn tất cả mọi thứ từ người sử dụng nơi tên là tên người dùng. 217 00:10:26,550 --> 00:10:28,120 Phải không? 218 00:10:28,120 --> 00:10:30,770 Đơn giản. 219 00:10:30,770 --> 00:10:34,490 Ý tưởng của SQL injection là chúng ta chèn một số mã độc hại mà có thể 220 00:10:34,490 --> 00:10:37,270 lừa máy chủ vào một cái gì đó chạy khác với những gì nó 221 00:10:37,270 --> 00:10:38,430 ban đầu đã được chạy. 222 00:10:38,430 --> 00:10:44,970 Vì vậy, hãy nói cho Tên truy nhập, chúng tôi đặt trong hoặc 1 bằng 1. 223 00:10:44,970 --> 00:10:46,700 Vì vậy, chúng tôi đặt trong hoặc 1 bằng 1. 224 00:10:46,700 --> 00:10:49,890 Cách nó sẽ đọc bây giờ sẽ được chọn từ người sử dụng, tất cả mọi thứ từ 225 00:10:49,890 --> 00:10:51,360 người sử dụng - đây là tất cả mọi thứ - 226 00:10:51,360 --> 00:10:55,880 nơi tên là tên người dùng, nhưng tên tài khoản hoặc 1 bằng 1. 227 00:10:55,880 --> 00:11:01,760 >> Vì vậy, tên là gì hoặc 1 bằng 1. 228 00:11:01,760 --> 00:11:04,060 1 bằng 1 luôn luôn đúng. 229 00:11:04,060 --> 00:11:07,690 Vì vậy, điều này sẽ luôn luôn trở lại thông tin từ người sử dụng. 230 00:11:07,690 --> 00:11:08,100 OK. 231 00:11:08,100 --> 00:11:10,030 Chúng tôi không cần phải có Tên truy nhập chính xác. 232 00:11:10,030 --> 00:11:14,240 Chúng tôi chỉ có thể có bất cứ điều gì mà chúng ta muốn, và nó sẽ trở lại thông tin 233 00:11:14,240 --> 00:11:15,690 mà chúng ta cần. 234 00:11:15,690 --> 00:11:17,160 Hãy xem xét một ví dụ khác. 235 00:11:17,160 --> 00:11:22,720 >> Nếu chúng ta đã chọn tất cả mọi thứ từ người sử dụng, nơi tên là thả người sử dụng TABLE - 236 00:11:22,720 --> 00:11:26,420 vì vậy những gì bạn có nghĩ rằng điều này sẽ làm gì nếu tôi đặt vào tên người dùng 237 00:11:26,420 --> 00:11:29,560 như người dùng DROP TABLE? 238 00:11:29,560 --> 00:11:30,230 Bất cứ ai cũng có một ý tưởng? 239 00:11:30,230 --> 00:11:31,050 Vâng. 240 00:11:31,050 --> 00:11:32,470 >> ĐỐI TƯỢNG: Nó sẽ nói nó để đổ tất cả các bảng. 241 00:11:32,470 --> 00:11:35,460 >> Luciano Arango: Nó sẽ nói cho chúng tôi để đổ tất cả mọi thứ trong trang web, 242 00:11:35,460 --> 00:11:38,290 tất cả mọi thứ trong cơ sở dữ liệu. 243 00:11:38,290 --> 00:11:41,910 Và những gì người sử dụng này cho - vì vậy Tôi sẽ cho các bạn thấy. 244 00:11:41,910 --> 00:11:45,462 Tôi bị vô hiệu hóa giảm các bảng bởi vì tôi không muốn bạn 245 00:11:45,462 --> 00:11:48,240 chàng trai để thả các bảng của tôi. 246 00:11:48,240 --> 00:11:49,850 Chúng ta hãy xem này. 247 00:11:49,850 --> 00:11:54,410 Vì vậy, đây chỉ đơn giản là kéo lên thông tin cho một người nào đó. 248 00:11:54,410 --> 00:11:57,550 Vì vậy, làm thế nào để chúng tôi biết nếu điều này là bị ảnh hưởng bởi SQL injection. 249 00:11:57,550 --> 00:12:01,545 Chúng tôi sẽ kiểm tra thật nhanh nếu chúng ta có thể đặt một cái gì đó - 250 00:12:01,545 --> 00:12:04,990 251 00:12:04,990 --> 00:12:06,080 hãy để tôi sao chép mã này. 252 00:12:06,080 --> 00:12:08,140 Tôi sẽ đi qua nó trong một giây. 253 00:12:08,140 --> 00:12:12,210 Tôi sẽ đặt gốc và 1 bằng 1. 254 00:12:12,210 --> 00:12:15,510 >> Này ngay tại đây, điều này phần trăm dấu 23 - 255 00:12:15,510 --> 00:12:19,970 những gì nó thực sự là, nếu tôi nhìn bên phải ở đây tại - 256 00:12:19,970 --> 00:12:23,820 cách HTML có trong con số, nếu bạn hãy nhìn vào khi tôi đặt trong một không gian 257 00:12:23,820 --> 00:12:28,380 ở đây - nếu tôi được không gian một cái gì đó ở đây, nó thay đổi nó vào một phần trăm 2. 258 00:12:28,380 --> 00:12:31,420 Các anh thấy điều này ngay tại đây khi tôi đặt trong một không gian? 259 00:12:31,420 --> 00:12:36,710 Cách nó hoạt động là bạn chỉ có thể gửi các giá trị ASCII thông qua HTML. 260 00:12:36,710 --> 00:12:40,330 Vì vậy, nó thay thế, ví dụ, một không gian với phần trăm 20. 261 00:12:40,330 --> 00:12:41,970 Tôi không biết nếu các bạn đã thấy rằng trước. 262 00:12:41,970 --> 00:12:45,100 >> Nó thay thế một hashtag với phần trăm 23. 263 00:12:45,100 --> 00:12:50,840 Chúng ta cần một hashtag vào cuối hoặc báo cáo để chúng tôi có thể nói cho 264 00:12:50,840 --> 00:13:00,885 cơ sở dữ liệu để quên nhận xét ra dấu chấm phẩy cuối cùng ở cuối. 265 00:13:00,885 --> 00:13:03,060 Chúng tôi muốn nó không nghĩ về điều đó. 266 00:13:03,060 --> 00:13:05,980 Chúng tôi chỉ muốn nó chạy tất cả mọi thứ mà chúng ta có trước và 267 00:13:05,980 --> 00:13:07,450 nhận xét rằng ra. 268 00:13:07,450 --> 00:13:08,710 Chúng ta hãy nhìn vào nó. 269 00:13:08,710 --> 00:13:14,670 >> Vì vậy, nếu tôi đã đặt một cái gì đó sai - chúng ta hãy nói ví dụ, tôi đặt 2 bình đẳng 270 00:13:14,670 --> 00:13:15,690 1, nó không cho tôi bất cứ điều gì. 271 00:13:15,690 --> 00:13:22,930 Khi tôi đặt trong 1 bằng 1, và nó trả lại một cái gì đó, điều này nói với tôi rằng 272 00:13:22,930 --> 00:13:24,660 này là dễ bị tổn thương một SQL injection. 273 00:13:24,660 --> 00:13:29,090 Tôi biết bây giờ mà bất cứ điều gì Tôi đặt sau này - 274 00:13:29,090 --> 00:13:39,110 và ví dụ, thả các bảng hay như thế 275 00:13:39,110 --> 00:13:41,190 chắc chắn sẽ làm việc. 276 00:13:41,190 --> 00:13:44,350 Tôi biết đó là dễ bị SQL injection bởi vì tôi biết rằng 277 00:13:44,350 --> 00:13:49,850 bên dưới mui xe, nó cho phép tôi làm 1 bằng 1 điều. 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 >> Và nếu chúng ta nhìn vào những người khác, số hai và số ba, đó là 281 00:13:56,540 --> 00:13:59,110 sẽ làm nhiều hơn một chút kiểm tra bên dưới 282 00:13:59,110 --> 00:14:03,680 mui xe của nó là gì. 283 00:14:03,680 --> 00:14:07,425 Vì vậy, bất cứ ai cho phép thả bất cứ điều gì chưa hay cố gắng? 284 00:14:07,425 --> 00:14:08,760 Các anh loại được SQL chưa? 285 00:14:08,760 --> 00:14:10,430 Bởi vì tôi biết các bạn có không thấy được chưa, vì vậy nó loại 286 00:14:10,430 --> 00:14:11,759 gây nhầm lẫn cho các bạn. 287 00:14:11,759 --> 00:14:16,160 288 00:14:16,160 --> 00:14:18,480 Chúng ta hãy có một cái nhìn. 289 00:14:18,480 --> 00:14:21,270 Vì vậy, cách để ngăn chặn SQLI là gì? 290 00:14:21,270 --> 00:14:21,390 OK. 291 00:14:21,390 --> 00:14:23,330 Vì vậy, điều này thực sự quan trọng bởi vì bạn kẻ chắc chắn muốn ngăn chặn 292 00:14:23,330 --> 00:14:24,090 này trong trang web của bạn. 293 00:14:24,090 --> 00:14:28,040 >> Nếu không, tất cả bạn bè của bạn sẽ làm cho niềm vui của bạn khi họ thả tất cả 294 00:14:28,040 --> 00:14:29,390 bảng của bạn. 295 00:14:29,390 --> 00:14:36,150 Vì vậy, ý tưởng là bạn sửa chữa SQL một cách nào đó, trong khi bạn kết hợp 296 00:14:36,150 --> 00:14:41,940 những gì các yếu tố đầu vào người dùng với một chuỗi nhất định. 297 00:14:41,940 --> 00:14:46,120 Vì vậy, cách làm việc này là bạn chuẩn bị cơ sở dữ liệu. 298 00:14:46,120 --> 00:14:50,830 Bạn chọn tên, màu sắc, và năng lượng từ một cơ sở dữ liệu được gọi là trái cây. 299 00:14:50,830 --> 00:14:53,580 Và sau đó, nơi calo ít hơn, và chúng tôi đặt một dấu hỏi có 300 00:14:53,580 --> 00:14:56,530 nói rằng chúng tôi đang đi để đầu vào một cái gì đó trong một giây. 301 00:14:56,530 --> 00:14:58,850 >> Và màu sắc bằng, và chúng tôi đặt một câu hỏi đánh dấu nói rằng chúng ta sẽ 302 00:14:58,850 --> 00:15:00,913 đầu vào một cái gì đó trong một giây là tốt. 303 00:15:00,913 --> 00:15:02,660 OK? 304 00:15:02,660 --> 00:15:09,920 Và sau đó chúng tôi thực hiện nó, đặt trong 150 và đỏ. 305 00:15:09,920 --> 00:15:12,820 Và điều này sẽ kiểm tra để chắc chắc chắn rằng hai - 306 00:15:12,820 --> 00:15:15,300 mảng này sẽ kiểm tra xem các hai là một số nguyên và 307 00:15:15,300 --> 00:15:16,550 rằng đây là một chuỗi. 308 00:15:16,550 --> 00:15:18,810 309 00:15:18,810 --> 00:15:20,890 Sau đó chúng tôi đi, và chúng tôi lấy tất cả, chúng tôi đặt nó trong màu đỏ. 310 00:15:20,890 --> 00:15:21,964 Điều đó có nghĩa chúng ta lấy tất cả. 311 00:15:21,964 --> 00:15:26,790 Nó có nghĩa là chúng tôi thực sự thực hiện SQL báo cáo và đặt nó trở lại trong màu đỏ. 312 00:15:26,790 --> 00:15:30,530 Ở đây chúng tôi làm như vậy, nhưng chúng tôi làm tương tự cho màu vàng. 313 00:15:30,530 --> 00:15:32,490 Và chúng tôi lấy tất cả. 314 00:15:32,490 --> 00:15:36,140 >> Và bằng cách này, chúng ta ngăn chặn người sử dụng từ việc có thể đầu vào một cái gì đó 315 00:15:36,140 --> 00:15:41,710 đó không phải là những gì chúng tôi được chỉ định, một chuỗi hoặc một số nguyên, ví dụ. 316 00:15:41,710 --> 00:15:45,100 317 00:15:45,100 --> 00:15:46,610 Tôi đã nói chuyện trước về dựa vào người khác. 318 00:15:46,610 --> 00:15:50,010 Khi các bạn bắt đầu dự án của bạn, bạn nhất chắc chắn sẽ sử dụng 319 00:15:50,010 --> 00:15:52,310 bootstrap hoặc một cái gì đó tương tự. 320 00:15:52,310 --> 00:15:53,490 Các bạn đã từng sử dụng Wordpress? 321 00:15:53,490 --> 00:15:57,170 Có lẽ các bạn đã sử dụng Wordpress có khả năng nhất. 322 00:15:57,170 --> 00:16:00,050 Vì vậy, các vấn đề với việc sử dụng thứ của người khác - 323 00:16:00,050 --> 00:16:05,940 Tôi chỉ cần đi để Google nhanh chóng thực Dễ bị tổn thương wordpress. 324 00:16:05,940 --> 00:16:07,495 >> Nếu tôi kéo lên này ngay bây giờ - 325 00:16:07,495 --> 00:16:08,995 Tôi nghĩa là đã làm một hai thứ hai của Google. 326 00:16:08,995 --> 00:16:12,300 327 00:16:12,300 --> 00:16:13,800 Chúng ta có thể thấy rằng Wordpress - 328 00:16:13,800 --> 00:16:17,450 này là ngày tháng chín '12. 329 00:16:17,450 --> 00:16:19,120 26 được cập nhật. 330 00:16:19,120 --> 00:16:23,620 Cấu hình mặc định của Wordpress trước 3.6 không ngăn cản các 331 00:16:23,620 --> 00:16:27,110 một số cập nhật, trong đó sức mạnh làm cho nó dễ dàng hơn cho 332 00:16:27,110 --> 00:16:29,790 các cuộc tấn công cross-site scripting. 333 00:16:29,790 --> 00:16:34,530 Vì vậy, một câu chuyện nhanh chóng, một khi chúng tôi đã làm việc - vì vậy tôi đã, vào mùa hè, làm việc một 334 00:16:34,530 --> 00:16:34,970 thực tập. 335 00:16:34,970 --> 00:16:40,400 Và chúng tôi đã làm việc với các loại như một công ty thẻ tín dụng lớn. 336 00:16:40,400 --> 00:16:42,020 >> Và họ dựa vào một cái gì đó gọi là - 337 00:16:42,020 --> 00:16:45,740 Tôi không biết nếu bạn đã bao giờ chơi với một sản phẩm được gọi là Joomla. 338 00:16:45,740 --> 00:16:51,750 Joomla là một sản phẩm được sử dụng để kiểm soát - loại tương tự 339 00:16:51,750 --> 00:16:54,340 Wordpress, được sử dụng để xây dựng trang web. 340 00:16:54,340 --> 00:16:56,060 Vì vậy, họ đã có trang web của họ làm việc trên Joomla. 341 00:16:56,060 --> 00:16:59,290 Đây thực sự là một thẻ tín dụng công ty ở Colombia. 342 00:16:59,290 --> 00:17:01,000 Tôi sẽ đưa bạn đến của họ trang web thực sự nhanh chóng. 343 00:17:01,000 --> 00:17:04,550 344 00:17:04,550 --> 00:17:05,400 >> Vì vậy, họ đã sử dụng Joomla. 345 00:17:05,400 --> 00:17:08,630 Và họ đã không được cập nhật Joomla để bổ sung mới nhất. 346 00:17:08,630 --> 00:17:12,160 Và như vậy khi chúng tôi đang xem xét đến mã của họ, chúng tôi có thể thực sự 347 00:17:12,160 --> 00:17:18,430 đi vào bên trong mã của họ và ăn cắp tất cả các thông tin thẻ tín dụng mà họ đã có, 348 00:17:18,430 --> 00:17:21,670 tất cả các số thẻ tín dụng, tên, địa chỉ. 349 00:17:21,670 --> 00:17:22,740 Và điều này đã được chỉ là - 350 00:17:22,740 --> 00:17:23,569 và mã của họ là hoàn toàn tốt đẹp. 351 00:17:23,569 --> 00:17:24,710 Họ đã có mã lớn. 352 00:17:24,710 --> 00:17:25,389 Đó là tất cả an ninh. 353 00:17:25,389 --> 00:17:26,520 Họ đã kiểm tra tất cả các cơ sở dữ liệu. 354 00:17:26,520 --> 00:17:29,020 Họ đảm bảo cross-site kịch bản là tốt. 355 00:17:29,020 --> 00:17:34,390 >> Nhưng họ đã sử dụng một cái gì đó mà không cập nhật, đó không phải là an toàn. 356 00:17:34,390 --> 00:17:36,940 Và do đó dẫn họ tới - vì vậy các bạn chắc chắn sẽ sử dụng khác 357 00:17:36,940 --> 00:17:40,650 mã, khuôn khổ của người khác của người dân để xây dựng trang web của bạn. 358 00:17:40,650 --> 00:17:43,860 Hãy chắc chắn rằng họ đang an toàn vì đôi khi nó không phải là bạn, một trong đó 359 00:17:43,860 --> 00:17:44,480 làm cho một sai lầm. 360 00:17:44,480 --> 00:17:47,440 Nhưng người khác làm cho một sai lầm, và sau đó bạn rơi xuống vì điều đó. 361 00:17:47,440 --> 00:17:51,190 362 00:17:51,190 --> 00:17:53,885 >> Mật khẩu và PII. 363 00:17:53,885 --> 00:17:56,820 Vì vậy, mật khẩu. 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 Chúng ta hãy nhìn vào mật khẩu thực sự nhanh chóng. 367 00:18:04,230 --> 00:18:04,590 OK. 368 00:18:04,590 --> 00:18:06,520 Xin vui lòng cho tôi biết rằng tất cả mọi người sử dụng an toàn - 369 00:18:06,520 --> 00:18:09,030 Tôi hy vọng tất cả mọi người ở đây sử dụng mật khẩu an toàn. 370 00:18:09,030 --> 00:18:12,890 Tôi chỉ để cho rằng trong như một giả định. 371 00:18:12,890 --> 00:18:14,850 Vì vậy, các bạn chắc chắn sẽ lưu trữ mật khẩu cho các trang web của bạn. 372 00:18:14,850 --> 00:18:17,440 Bạn sẽ làm một cái gì đó như đăng nhập hoặc một cái gì đó như thế. 373 00:18:17,440 --> 00:18:19,610 Điều quan trọng là để không lưu trữ mật khẩu trong văn bản gốc. 374 00:18:19,610 --> 00:18:20,860 Này là cực kỳ quan trọng. 375 00:18:20,860 --> 00:18:23,960 Bạn không muốn để lưu trữ một mật khẩu trong văn bản gốc. 376 00:18:23,960 --> 00:18:27,370 >> Và bạn chắc chắn không thực sự muốn để lưu trữ nó trong một cách băm. 377 00:18:27,370 --> 00:18:32,440 Vì vậy, một cách băm là những gì khi bạn tạo ra một từ, khi bạn đặt này 378 00:18:32,440 --> 00:18:36,200 từ thành một hàm băm, nó sẽ tạo ra trở lại một số loại khó hiểu 379 00:18:36,200 --> 00:18:39,390 tin nhắn hoặc tập hợp khó hiểu của các phím. 380 00:18:39,390 --> 00:18:40,640 Tôi sẽ chỉ cho bạn một ví dụ. 381 00:18:40,640 --> 00:18:44,620 382 00:18:44,620 --> 00:18:50,250 Tôi sẽ băm họ password1 từ. 383 00:18:50,250 --> 00:18:55,280 Hash để md5 sẽ trả lại cho tôi một số loại thông tin kỳ lạ. 384 00:18:55,280 --> 00:18:59,140 >> Vấn đề là người dân ra có mà muốn đi vào các trang web có 385 00:18:59,140 --> 00:19:02,750 đã tìm ra loại của tất cả các hash md5. 386 00:19:02,750 --> 00:19:06,030 Những gì họ đã được họ ngồi xuống trên họ máy vi tính, và họ băm mỗi 387 00:19:06,030 --> 00:19:09,660 từ có thể duy nhất ra khỏi đó cho đến khi họ có loại này là gì. 388 00:19:09,660 --> 00:19:11,420 Nếu tôi được nhìn này lên - 389 00:19:11,420 --> 00:19:12,420 Tôi chỉ nắm lấy băm này. 390 00:19:12,420 --> 00:19:14,120 Nếu tôi nhận được băm này từ - 391 00:19:14,120 --> 00:19:17,470 nếu tôi đi vào một trang web, và tôi thấy băm này bởi vì tôi có được các 392 00:19:17,470 --> 00:19:24,100 cơ sở dữ liệu, và tôi nhìn nó, một người nào đó đã tìm ra cho tôi. 393 00:19:24,100 --> 00:19:28,600 394 00:19:28,600 --> 00:19:29,100 >> Yeah. 395 00:19:29,100 --> 00:19:35,030 Vì vậy, mọi người ngồi xuống, và bất cứ điều gì md5 băm mà bạn đưa vào, họ sẽ 396 00:19:35,030 --> 00:19:37,760 trả lại cho bạn một cái gì đó đó là một từ. 397 00:19:37,760 --> 00:19:39,800 Nếu tôi băm một từ khác, như - 398 00:19:39,800 --> 00:19:42,410 Tôi không biết - 399 00:19:42,410 --> 00:19:43,490 trees2. 400 00:19:43,490 --> 00:19:46,050 Tôi không muốn phải thất vọng bằng cách tìm kiếm Google của tôi. 401 00:19:46,050 --> 00:19:49,820 402 00:19:49,820 --> 00:19:52,780 Có nó, trees2. 403 00:19:52,780 --> 00:19:55,930 Vì vậy, rất nhiều trang web vẫn còn sử dụng md5 băm. 404 00:19:55,930 --> 00:19:57,730 Họ nói, oh, đó là an toàn. 405 00:19:57,730 --> 00:19:58,570 Chúng tôi không lưu trữ trong văn bản gốc. 406 00:19:58,570 --> 00:19:59,740 Chúng ta có băm md5 này. 407 00:19:59,740 --> 00:20:01,880 Và tất cả tôi phải làm là chỉ cần Google số. 408 00:20:01,880 --> 00:20:03,940 >> Tôi thậm chí không phải tính toán bản thân mình. 409 00:20:03,940 --> 00:20:06,790 Tôi chỉ có thể Google nó, và ai đó đã làm nó cho tôi. 410 00:20:06,790 --> 00:20:08,010 Dưới đây là một bó của họ. 411 00:20:08,010 --> 00:20:09,260 Dưới đây là một loạt các mật khẩu. 412 00:20:09,260 --> 00:20:13,890 413 00:20:13,890 --> 00:20:18,680 Vì vậy, chắc chắn không sử dụng md5 băm, bởi vì tất cả các bạn phải 414 00:20:18,680 --> 00:20:19,140 làm là Google nó. 415 00:20:19,140 --> 00:20:20,390 Vì vậy, những gì bạn muốn sử dụng để thay thế? 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 Một cái gì đó gọi là muối. 419 00:20:31,260 --> 00:20:32,460 Vì vậy, những gì là muối - 420 00:20:32,460 --> 00:20:36,280 Các anh nhớ khi chúng tôi nói về ngẫu nhiên trong - 421 00:20:36,280 --> 00:20:37,920 Tôi không chắc chắn những gì pset nó là - 422 00:20:37,920 --> 00:20:41,140 được nó pset có hay bốn? 423 00:20:41,140 --> 00:20:45,150 >> Chúng tôi đã nói về việc tìm kiếm kim trong Haystack. 424 00:20:45,150 --> 00:20:48,480 Và trong pset, nó nói rằng bạn có thể thực sự tìm ra những gì ngẫu nhiên 425 00:20:48,480 --> 00:20:51,840 tạo ra bởi vì ai đó đã chạy ngẫu nhiên một triệu lần và chỉ 426 00:20:51,840 --> 00:20:53,230 loại hình thành những gì họ tạo ra. 427 00:20:53,230 --> 00:20:55,840 Những gì bạn muốn làm là đưa vào một đầu vào. 428 00:20:55,840 --> 00:20:57,130 Vì vậy, đó là những gì muối là loại. 429 00:20:57,130 --> 00:21:00,900 Họ đã tìm ra những gì muối trả cho từng công trình. 430 00:21:00,900 --> 00:21:04,750 >> Vì vậy, những gì muối, không có gì bạn đặt trong một muối. 431 00:21:04,750 --> 00:21:06,160 Bạn đặt trong một từ nhất định. 432 00:21:06,160 --> 00:21:09,720 Và nó sẽ băm từ đó tùy thuộc vào những gì bạn đưa vào đây. 433 00:21:09,720 --> 00:21:13,570 Vì vậy, nếu tôi băm một mật khẩu với điều này câu, nó sẽ băm 434 00:21:13,570 --> 00:21:17,180 khác nhau nếu tôi băm password1 với một câu khác nhau. 435 00:21:17,180 --> 00:21:21,670 Nó loại cung cấp cho nó một nơi nào đó để bắt đầu cho băm để bắt đầu. 436 00:21:21,670 --> 00:21:25,970 Vì vậy, nó là rất nhiều khó khăn hơn để tính toán, nhưng bạn vẫn có thể tính toán nó, đặc biệt là 437 00:21:25,970 --> 00:21:26,830 nếu bạn sử dụng một muối xấu. 438 00:21:26,830 --> 00:21:29,650 >> Người đã cũng đã tìm ra muối thông thường và tìm ra 439 00:21:29,650 --> 00:21:31,500 những gì mà nó được. 440 00:21:31,500 --> 00:21:34,980 Muối ngẫu nhiên là tốt hơn nhiều, nhưng cách tốt nhất là sử dụng 441 00:21:34,980 --> 00:21:38,160 một cái gì đó gọi là hầm mộ. 442 00:21:38,160 --> 00:21:40,480 Và những gì crypt cho phép bạn làm - vì vậy các chức năng này 443 00:21:40,480 --> 00:21:41,820 đã được xây dựng cho bạn. 444 00:21:41,820 --> 00:21:44,910 Nhiều người quên rằng, hoặc họ quên sử dụng nó. 445 00:21:44,910 --> 00:21:54,520 Nhưng nếu tôi nhìn lên crypt PHP, crypt đã trả về một chuỗi băm cho tôi. 446 00:21:54,520 --> 00:21:58,790 Và nó thực sự muối nhiều lần và băm nó nhiều lần. 447 00:21:58,790 --> 00:22:00,070 >> Vì vậy, chúng tôi không cần phải làm điều này. 448 00:22:00,070 --> 00:22:04,790 Vì vậy, tất cả các bạn phải làm là gửi nó vào hầm mộ. 449 00:22:04,790 --> 00:22:08,170 Và nó sẽ tạo ra một hash tuyệt vời mà không bạn phải lo lắng về muối 450 00:22:08,170 --> 00:22:08,990 hoặc bất cứ điều gì. 451 00:22:08,990 --> 00:22:12,000 Bởi vì nếu bạn đã muối nó, bạn có nhớ những gì bạn đã sử dụng muối 452 00:22:12,000 --> 00:22:13,800 bởi vì nếu không, bạn không thể có được của bạn mật khẩu trở lại mà không có sự 453 00:22:13,800 --> 00:22:15,760 muối mà bạn sử dụng. 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 >> Và cũng nhận dạng cá nhân thông tin. 457 00:22:23,150 --> 00:22:26,730 Vì vậy, an ninh xã hội, thẻ tín dụng - đó là khá rõ ràng. 458 00:22:26,730 --> 00:22:31,880 Nhưng đôi khi người ta quên đi cách nó công trình là, làm thế nào nhiều thông tin làm bạn 459 00:22:31,880 --> 00:22:35,690 thực sự cần phải tìm thấy một số người? 460 00:22:35,690 --> 00:22:37,740 Ai đó đã làm một nghiên cứu về này một cách trở lại. 461 00:22:37,740 --> 00:22:40,870 Và nó là như thế, nếu bạn có một tên đầy đủ, bạn không thể tìm thấy 462 00:22:40,870 --> 00:22:41,610 một ai đó mà dễ dàng. 463 00:22:41,610 --> 00:22:43,900 Nhưng những gì nếu bạn có một tên đầy đủ và ngày sinh của họ? 464 00:22:43,900 --> 00:22:47,770 Là đủ để xác định một người nào đó đặc biệt? 465 00:22:47,770 --> 00:22:52,760 >> Những gì nếu bạn có tên của họ và địa chỉ đường phố mà họ sống bằng gì? 466 00:22:52,760 --> 00:22:55,110 Là đủ để tìm thấy một người nào đó? 467 00:22:55,110 --> 00:23:02,490 Và đó là khi họ đặt câu hỏi, là những gì thông tin nhận dạng cá nhân, và 468 00:23:02,490 --> 00:23:05,360 những gì bạn nên lo lắng về không cho đi? 469 00:23:05,360 --> 00:23:08,770 Nếu bạn cho đi nhận dạng cá nhân thông tin mà một người nào đó cung cấp cho bạn, 470 00:23:08,770 --> 00:23:11,420 bạn có khả năng có thể bị kiện. 471 00:23:11,420 --> 00:23:12,610 Và chúng tôi chắc chắn không muốn điều đó. 472 00:23:12,610 --> 00:23:14,955 >> Vì vậy, khi bạn đang đặt trang web của bạn ra, và bạn có một thực sự mát mẻ 473 00:23:14,955 --> 00:23:17,230 thiết kế, hy vọng bạn đã thực hiện một dự án cuối cùng tuyệt vời. 474 00:23:17,230 --> 00:23:18,370 Bất kỳ bạn loại muốn đặt nó ra khỏi đó. 475 00:23:18,370 --> 00:23:21,420 Bạn muốn chắc chắn rằng bất cứ điều gì bạn đang dùng từ người sử dụng, nếu nó 476 00:23:21,420 --> 00:23:25,310 thông tin nhận dạng cá nhân, bạn muốn chắc chắn rằng bạn đang thực sự là 477 00:23:25,310 --> 00:23:26,560 cẩn thận với nó. 478 00:23:26,560 --> 00:23:29,670 479 00:23:29,670 --> 00:23:31,080 >> Vỏ tiêm. 480 00:23:31,080 --> 00:23:31,350 OK. 481 00:23:31,350 --> 00:23:37,590 Vỏ tiêm cho phép kẻ xâm nhập để được tiếp cận với dòng lệnh thực tế của bạn 482 00:23:37,590 --> 00:23:39,660 trong máy chủ của bạn. 483 00:23:39,660 --> 00:23:44,060 Và vì vậy ông có thể chạy mã mà bạn không thể kiểm soát. 484 00:23:44,060 --> 00:23:49,560 Hãy lấy một ví dụ về điều này chuỗi đẹp ngay tại đây. 485 00:23:49,560 --> 00:23:55,570 Nếu chúng ta đi vào các trang web một lần nữa, tôi sẽ đi vào tiêm mã. 486 00:23:55,570 --> 00:23:58,910 Vì vậy, điều này không là - 487 00:23:58,910 --> 00:24:00,420 đó cũng là điều chúng tôi nhìn vào trước. 488 00:24:00,420 --> 00:24:11,200 Chúng tôi đang cho phép người sử dụng đưa vào bất cứ điều gì anh ta muốn, và nó sẽ in ra 489 00:24:11,200 --> 00:24:12,220 bất cứ điều gì bạn muốn. 490 00:24:12,220 --> 00:24:13,890 >> Vì vậy, tôi sẽ đặt một cuộc gọi. 491 00:24:13,890 --> 00:24:15,540 Điều mà không được - 492 00:24:15,540 --> 00:24:16,940 nó sẽ bắt đầu bằng cách ghép. 493 00:24:16,940 --> 00:24:19,520 Vì vậy, nó sẽ cho phép tôi chạy bất cứ điều gì lệnh chạy của người 494 00:24:19,520 --> 00:24:21,500 trước và chỉ huy của tôi. 495 00:24:21,500 --> 00:24:23,980 Và tôi chạy một lệnh hệ thống. 496 00:24:23,980 --> 00:24:27,310 Và những chuỗi cuối cùng là - nhớ những gì tôi đã nói chuyện với các bạn về, 497 00:24:27,310 --> 00:24:31,725 còn bạn cần phải mã hóa nó trong một phương pháp URL. 498 00:24:31,725 --> 00:24:35,010 499 00:24:35,010 --> 00:24:36,992 Nếu tôi chạy này ngay bây giờ - 500 00:24:36,992 --> 00:24:39,150 Tôi sẽ cho bạn ở đây - 501 00:24:39,150 --> 00:24:41,100 bạn sẽ thấy rằng tôi đã kết thúc lên chạy một lệnh. 502 00:24:41,100 --> 00:24:45,700 503 00:24:45,700 --> 00:24:49,320 >> Đây thực sự là máy chủ thực sự rằng trang web của tôi đang chạy trên. 504 00:24:49,320 --> 00:24:55,840 505 00:24:55,840 --> 00:24:58,510 Vì vậy, chúng tôi không muốn điều đó, bởi vì tôi có thể chạy - 506 00:24:58,510 --> 00:25:00,320 máy chủ này không phải của tôi. 507 00:25:00,320 --> 00:25:04,030 Vì vậy, tôi không muốn mess up của mình chị em, máy chủ của Marcus. 508 00:25:04,030 --> 00:25:07,470 Nhưng bạn có thể chạy lệnh hơn đó là nguy hiểm. 509 00:25:07,470 --> 00:25:11,885 Và có khả năng, bạn có thể xóa Bức ảnh, loại bỏ các thư mục. 510 00:25:11,885 --> 00:25:14,390 511 00:25:14,390 --> 00:25:17,970 Tôi có thể loại bỏ một thư mục nhất định nếu Tôi muốn, nhưng tôi không muốn 512 00:25:17,970 --> 00:25:19,530 để làm điều đó với Marcus. 513 00:25:19,530 --> 00:25:20,420 Anh ấy là một chàng trai tốt. 514 00:25:20,420 --> 00:25:21,470 Ông cho tôi mượn máy chủ của mình. 515 00:25:21,470 --> 00:25:24,620 Vì vậy tôi sẽ để cho anh ta tắt trên tốt nhất. 516 00:25:24,620 --> 00:25:32,280 >> Vì vậy, những gì chúng tôi không muốn sử dụng - chúng tôi không muốn sử dụng eval hoặc hệ thống. 517 00:25:32,280 --> 00:25:34,755 Eval hoặc hệ thống cho phép chúng ta làm cho các cuộc gọi hệ thống. 518 00:25:34,755 --> 00:25:37,410 519 00:25:37,410 --> 00:25:38,410 Phương tiện eval đánh giá. 520 00:25:38,410 --> 00:25:40,790 Hệ thống có nghĩa là những gì tôi chạy. 521 00:25:40,790 --> 00:25:42,490 Nó chạy một cái gì đó trong hệ thống. 522 00:25:42,490 --> 00:25:46,730 Nhưng chúng ta có thể cấm những việc này trong PHP để chúng ta không sử dụng chúng. 523 00:25:46,730 --> 00:25:47,400 Và tập tin tải lên. 524 00:25:47,400 --> 00:25:49,180 Tôi đã đi để làm một tuyệt vời điều với các tập tin tải lên. 525 00:25:49,180 --> 00:25:52,740 Nhưng như tôi đã nói với các bạn, tập tin của tôi tải lên điều không làm việc. 526 00:25:52,740 --> 00:25:54,590 Nếu tôi được tải lên một tập tin ngay bây giờ - 527 00:25:54,590 --> 00:25:57,120 528 00:25:57,120 --> 00:26:00,830 nếu tôi được tải lên một tập tin, và đó là một hình ảnh - 529 00:26:00,830 --> 00:26:03,180 bạn có một điều tải lên đó là một bức tranh. 530 00:26:03,180 --> 00:26:03,660 Đó là tốt. 531 00:26:03,660 --> 00:26:04,280 Không có gì xảy ra. 532 00:26:04,280 --> 00:26:10,840 >> Nhưng nếu bạn có một tập tin tải lên, cho ví dụ, và người sử dụng thực sự cập nhật 533 00:26:10,840 --> 00:26:19,220 một tập tin PHP hoặc một tập tin exe hoặc một cái gì đó như thế, sau đó bạn có thể có khả năng 534 00:26:19,220 --> 00:26:19,740 có một vấn đề. 535 00:26:19,740 --> 00:26:21,390 Điều này đã làm việc trước. 536 00:26:21,390 --> 00:26:25,202 Thật không may cho tôi, đó là không làm việc nữa. 537 00:26:25,202 --> 00:26:30,230 Nếu tôi, ví dụ, tải lên tập tin này, tôi không nhận được sự cho phép để tải lên 538 00:26:30,230 --> 00:26:33,400 các tập tin do máy chủ không phải là tôi. 539 00:26:33,400 --> 00:26:38,670 Vì vậy, các chàng trai thực sự thông minh. 540 00:26:38,670 --> 00:26:39,610 >> Vì vậy, chúng tôi không muốn - 541 00:26:39,610 --> 00:26:40,130 Tôi sẽ cho các bạn thấy - 542 00:26:40,130 --> 00:26:41,840 OK, đây là một số công cụ thực sự mát mẻ. 543 00:26:41,840 --> 00:26:45,100 Vì vậy, các - 544 00:26:45,100 --> 00:26:47,715 đi vào - nếu các bạn có Firefox - hy vọng bạn làm. 545 00:26:47,715 --> 00:26:54,260 Có hai tiện ích gọi là SQL Tiêm Tôi và Cross-Site Script nhớ. 546 00:26:54,260 --> 00:26:56,870 Họ mở ra ít phụ thanh bên cạnh. 547 00:26:56,870 --> 00:27:01,480 Và nếu tôi đã đi đến CS60 ví dụ - 548 00:27:01,480 --> 00:27:04,210 vì vậy những gì nó làm là nó trông cho tất cả các hình thức đó - 549 00:27:04,210 --> 00:27:07,220 550 00:27:07,220 --> 00:27:08,760 hy vọng, tôi sẽ không nhận được gặp rắc rối cho việc này. 551 00:27:08,760 --> 00:27:09,190 >> Nhưng OK. 552 00:27:09,190 --> 00:27:12,600 Đây là hệ thống pin. 553 00:27:12,600 --> 00:27:18,946 Vì vậy, khi tôi bắt đầu tìm kiếm các lỗ hổng trong hệ thống, điều đầu tiên tôi làm là 554 00:27:18,946 --> 00:27:21,820 mở nhỏ xinh đẹp này công cụ ở bên cạnh. 555 00:27:21,820 --> 00:27:24,160 Và tôi sẽ thử nghiệm hình thức với các cuộc tấn công tự động. 556 00:27:24,160 --> 00:27:28,510 Và vì vậy điều này không là sẽ từ từ mở ra một loạt các trình duyệt. 557 00:27:28,510 --> 00:27:29,930 Dưới đây là một loạt các trình duyệt. 558 00:27:29,930 --> 00:27:33,320 Và nó đang cố gắng mọi sự kết hợp duy nhất của cross-site scripting 559 00:27:33,320 --> 00:27:37,380 rằng có thể là, nếu bạn nhìn thấy trên mặt. 560 00:27:37,380 --> 00:27:42,080 >> Và nó sẽ cho tôi một kết quả loại câu trả lời là. 561 00:27:42,080 --> 00:27:42,860 Tất cả vượt qua. 562 00:27:42,860 --> 00:27:43,910 Rõ ràng, tất cả họ đều vượt qua. 563 00:27:43,910 --> 00:27:46,190 Ý tôi là, họ thực sự thông minh người ở đó. 564 00:27:46,190 --> 00:27:48,010 Nhưng nếu tôi đã chạy - 565 00:27:48,010 --> 00:27:52,050 Tôi đã có lần trước khi tôi chạy các dự án cuối cùng của học sinh. 566 00:27:52,050 --> 00:27:56,080 Tôi chỉ cần chạy SQL Tiêm nhớ với tất cả các cuộc tấn công khác nhau. 567 00:27:56,080 --> 00:28:00,080 Và nó đang cố gắng để tiêm SQL máy chủ pin này. 568 00:28:00,080 --> 00:28:03,590 Vì vậy, nếu chúng ta di chuyển xuống, cho Ví dụ, nó nói - 569 00:28:03,590 --> 00:28:04,960 điều này là tốt nếu nó trở về. 570 00:28:04,960 --> 00:28:08,250 >> Vì vậy, nó được thử nghiệm một số giá trị nhất định. 571 00:28:08,250 --> 00:28:11,170 Và máy chủ trở lại một mã là tiêu cực. 572 00:28:11,170 --> 00:28:11,780 Loại bỏ tạm thời. 573 00:28:11,780 --> 00:28:13,030 Điều này là tốt. 574 00:28:13,030 --> 00:28:17,050 575 00:28:17,050 --> 00:28:20,750 Nó sẽ cố gắng tất cả các xét nghiệm này. 576 00:28:20,750 --> 00:28:21,790 Vì vậy, bạn chỉ có thể chạy - 577 00:28:21,790 --> 00:28:27,860 Tôi ước gì có thể tìm thấy một trang web thực sự nhanh chóng mà có thể cho tôi - 578 00:28:27,860 --> 00:28:29,110 có lẽ các cửa hàng CS50. 579 00:28:29,110 --> 00:28:43,890 580 00:28:43,890 --> 00:28:45,711 >> Wow, điều này sẽ có cách quá dài. 581 00:28:45,711 --> 00:28:53,090 582 00:28:53,090 --> 00:28:55,130 Tôi sẽ cho thử nghiệm đầu tiên không hoàn thành đúng. 583 00:28:55,130 --> 00:28:57,330 Vì vậy, nó phàn nàn. 584 00:28:57,330 --> 00:28:58,470 Vì vậy, đây là ba điều. 585 00:28:58,470 --> 00:29:00,430 Những công cụ này là miễn phí. 586 00:29:00,430 --> 00:29:03,960 Bạn có thể tải về và chạy chúng trên trang web của bạn, và nó sẽ cho bạn biết nếu 587 00:29:03,960 --> 00:29:06,650 bạn có cross-site scripting, nếu bạn có SQL, nếu bạn có 588 00:29:06,650 --> 00:29:07,900 một cái gì đó tương tự. 589 00:29:07,900 --> 00:29:12,230 590 00:29:12,230 --> 00:29:14,500 Tôi loại rối tung lên. 591 00:29:14,500 --> 00:29:15,550 >> Điều quan trọng - 592 00:29:15,550 --> 00:29:17,900 OK, vì vậy không bao giờ tin tưởng vào người sử dụng. 593 00:29:17,900 --> 00:29:21,920 Bất cứ điều gì các đầu vào sử dụng cho bạn, làm cho chắc chắn bạn vệ sinh nó, bạn làm sạch nó, 594 00:29:21,920 --> 00:29:25,300 bạn kiểm tra những điều đúng đắn, mà nó đem lại cho bạn những gì bạn 595 00:29:25,300 --> 00:29:28,240 muốn anh ta để cung cấp cho bạn. 596 00:29:28,240 --> 00:29:32,460 Luôn luôn được cập nhật về những gì các khuôn khổ rằng bạn đang thực sự sử dụng. 597 00:29:32,460 --> 00:29:34,630 Nếu bạn sử dụng một cái gì đó như bootstrap - 598 00:29:34,630 --> 00:29:36,340 Tôi biết các bạn đang sử dụng bootstrap vì anh ấy sẽ đi 599 00:29:36,340 --> 00:29:38,140 trên này ngay trong lớp học - 600 00:29:38,140 --> 00:29:43,120 và Wordpress hay như thế, thông thường điều này có thể bị tấn công. 601 00:29:43,120 --> 00:29:44,770 >> Và sau đó bạn thậm chí không biết. 602 00:29:44,770 --> 00:29:45,800 Bạn chỉ cần chạy trang web của bạn. 603 00:29:45,800 --> 00:29:47,360 Và nó hoàn toàn an toàn. 604 00:29:47,360 --> 00:29:51,730 Và bạn đi xuống. 605 00:29:51,730 --> 00:29:54,000 Vì vậy, tôi thực sự đánh bắt cá đầu. 606 00:29:54,000 --> 00:29:55,770 Nhưng tôi muốn cảm ơn Pentest Labs. 607 00:29:55,770 --> 00:29:58,140 Tôi sẽ cho các bạn thấy một cái gì đó gọi là Pentest Labs. 608 00:29:58,140 --> 00:30:05,000 Nếu các bạn thực sự quan tâm những gì an ninh thực sự là, có một 609 00:30:05,000 --> 00:30:07,300 trang web được gọi Pentest Labs nếu các bạn hãy đến đó ngay bây giờ. 610 00:30:07,300 --> 00:30:10,730 Ồ, đó không phải là nó. 611 00:30:10,730 --> 00:30:12,030 Tôi chỉ cần đi để chạy nó như thế này. 612 00:30:12,030 --> 00:30:14,400 Google nói với tôi câu trả lời. 613 00:30:14,400 --> 00:30:16,590 >> OK. 614 00:30:16,590 --> 00:30:19,030 Và nó dạy cho bạn sử dụng - vì vậy nó nói, tìm hiểu thâm nhập web 615 00:30:19,030 --> 00:30:21,060 kiểm tra đúng cách. 616 00:30:21,060 --> 00:30:23,650 Nó dạy cho bạn - 617 00:30:23,650 --> 00:30:25,150 hy vọng, bạn là một người đạo đức. 618 00:30:25,150 --> 00:30:29,200 Nhưng nó dạy bạn làm thế nào bạn có thể nhìn vào làm thế nào bạn có thể nhận được trong trang web. 619 00:30:29,200 --> 00:30:31,130 Và nếu bạn tìm hiểu làm thế nào bạn có thể nhận được bên trong các trang web, bạn có thể tìm hiểu làm thế nào để 620 00:30:31,130 --> 00:30:34,960 bảo vệ mình khỏi bị các trang web bên trong. 621 00:30:34,960 --> 00:30:39,100 Hãy để tôi phóng to bởi vì có lẽ các bạn không nhìn vào quyền này. 622 00:30:39,100 --> 00:30:46,350 >> Từ SQL injection trình bao, vì vậy loại làm thế nào tôi có thể nhận được từ SQL 623 00:30:46,350 --> 00:30:48,530 tiêm trình bao. 624 00:30:48,530 --> 00:30:53,890 Và bạn tải về máy ảo này. 625 00:30:53,890 --> 00:30:55,690 Và các máy ảo đã được đi kèm với các trang web mà bạn 626 00:30:55,690 --> 00:30:56,780 sẽ thử nó trên. 627 00:30:56,780 --> 00:30:58,030 Bạn tải về file PDF. 628 00:30:58,030 --> 00:31:03,610 629 00:31:03,610 --> 00:31:08,370 Và nó sẽ cho bạn những gì từng dòng bạn phải làm, những gì bạn kiểm tra. 630 00:31:08,370 --> 00:31:14,560 Đây là những gì một kẻ tấn công thực sự không để vào bên trong một trang web. 631 00:31:14,560 --> 00:31:15,750 >> Và một số công cụ này là phức tạp. 632 00:31:15,750 --> 00:31:17,520 Tôi ước mình có thể đi qua hơn điều với các bạn. 633 00:31:17,520 --> 00:31:21,090 Nhưng tôi lo lắng rằng các bạn chưa thực sự - 634 00:31:21,090 --> 00:31:23,090 đây là những gì tôi đã đi qua với các bạn, kiểm tra web 635 00:31:23,090 --> 00:31:26,830 cho thử nghiệm thâm nhập. 636 00:31:26,830 --> 00:31:33,540 Không thực sự biết những gì SQL và những gì - 637 00:31:33,540 --> 00:31:35,960 Hội thảo Carl Jackson là tuyệt vời là tốt. 638 00:31:35,960 --> 00:31:37,360 Các bạn không biết loại của việc này là gì. 639 00:31:37,360 --> 00:31:39,450 Nhưng nếu bạn vào trang web này, và bạn tải về các hướng dẫn và các 640 00:31:39,450 --> 00:31:43,290 Các file PDF, bạn có thể đi xem một loại những gì các lĩnh vực an ninh thực sự 641 00:31:43,290 --> 00:31:46,940 trong thử nghiệm thâm nhập, xem làm thế nào bạn có thể có được trang web bên trong và bảo vệ 642 00:31:46,940 --> 00:31:48,020 mình khỏi nó. 643 00:31:48,020 --> 00:31:56,360 >> Vì vậy, nếu tôi thực hiện một cái nhìn tổng quan siêu nhanh chóng, nó sẽ được ngăn chặn cross-site scripting. 644 00:31:56,360 --> 00:32:00,160 Bạn muốn sử dụng htmlspecialchars mỗi thời gian các yếu tố đầu vào người sử dụng một cái gì đó. 645 00:32:00,160 --> 00:32:01,580 Ngăn chặn SQL injection. 646 00:32:01,580 --> 00:32:04,510 Nếu bạn làm điều đó, bạn đã tốt hơn so với Harvard là 647 00:32:04,510 --> 00:32:06,530 khi họ đã bị vi phạm. 648 00:32:06,530 --> 00:32:10,510 Và chắc chắn rằng mật khẩu của bạn đang không ở trong văn bản gốc. 649 00:32:10,510 --> 00:32:16,220 Hãy chắc chắn rằng bạn không chỉ có một cách băm họ, nhưng bạn nên sử dụng hầm mộ, PHP 650 00:32:16,220 --> 00:32:18,670 chức năng mà tôi thấy các bạn. 651 00:32:18,670 --> 00:32:20,060 Bằng cách đó, bạn sẽ được tốt. 652 00:32:20,060 --> 00:32:25,830 >> Ngoài ra, nếu bạn bè của bạn cho bạn, chạy SQL Tiêm nhớ trên trang web của họ. 653 00:32:25,830 --> 00:32:28,140 Chạy cross-site scripting trên trang web của họ. 654 00:32:28,140 --> 00:32:33,720 Và bạn sẽ nhìn thấy rất nhiều các trang web có một tấn các lỗ hổng. 655 00:32:33,720 --> 00:32:40,400 Thật không thể tin bao nhiêu người quên để vệ sinh cơ sở dữ liệu của họ hoặc để thực hiện 656 00:32:40,400 --> 00:32:46,340 chắc chắn những gì nhập vào của người không phải là mã kịch bản. 657 00:32:46,340 --> 00:32:47,200 OK. 658 00:32:47,200 --> 00:32:49,182 Tôi loại kết thúc rất sớm. 659 00:32:49,182 --> 00:32:56,510 Nhưng nếu ai có bất kỳ câu hỏi nào về bất cứ điều gì, bạn có thể chụp tôi một câu hỏi. 660 00:32:56,510 --> 00:32:56,630 Yeah. 661 00:32:56,630 --> 00:32:56,970 Đi, đi. 662 00:32:56,970 --> 00:32:59,846 >> ĐỐI TƯỢNG: Tôi chỉ muốn hỏi, bạn có thể giải thích cách các tập tin 663 00:32:59,846 --> 00:33:03,160 tải lên chính xác công trình. 664 00:33:03,160 --> 00:33:03,480 >> Luciano Arango: Vâng. 665 00:33:03,480 --> 00:33:06,350 Vì vậy, hãy để tôi chỉ cho bạn các tập tin tải lên thật nhanh. 666 00:33:06,350 --> 00:33:11,300 Vì vậy, các tập tin tải lên - 667 00:33:11,300 --> 00:33:14,500 vấn đề wit các tập tin tải lên ngay bây giờ là - 668 00:33:14,500 --> 00:33:18,541 Tôi sẽ mở mã để các bạn xem mã đằng sau hậu trường. 669 00:33:18,541 --> 00:33:22,390 670 00:33:22,390 --> 00:33:24,305 Và nó được tải lên. 671 00:33:24,305 --> 00:33:28,030 672 00:33:28,030 --> 00:33:31,560 Dưới đây là một mã cho tải lên tập tin. 673 00:33:31,560 --> 00:33:33,980 >> Chúng tôi đang cố gắng để đi vào này thư mục trên đây. 674 00:33:33,980 --> 00:33:37,380 675 00:33:37,380 --> 00:33:44,880 Và chúng tôi đang cố gắng để, một khi chúng ta nhập tập tin, tập tin isset - vì vậy khi có một 676 00:33:44,880 --> 00:33:50,900 nộp trong FILES, hình ảnh đó, sau đó chúng tôi cố gắng để di chuyển nó ở đây. 677 00:33:50,900 --> 00:33:51,910 Chúng tôi lấy các tập tin ở đây. 678 00:33:51,910 --> 00:33:58,350 Phương pháp này là POST, chủng loại, hình ảnh, tập tin. 679 00:33:58,350 --> 00:33:59,630 Và chúng tôi đang gửi tập tin này. 680 00:33:59,630 --> 00:34:03,910 Và sau đó khi chúng tôi nhận được nó, vì vậy một khi tập tin có một hình ảnh, chúng tôi đang cố gắng để gửi 681 00:34:03,910 --> 00:34:05,060 vào thư mục này. 682 00:34:05,060 --> 00:34:09,814 >> Vấn đề là các trang web không phải là để cho tôi đi vào thư mục này, 683 00:34:09,814 --> 00:34:12,239 bởi vì nó không muốn tôi trở lại. 684 00:34:12,239 --> 00:34:13,489 Nó không muốn tôi đi - 685 00:34:13,489 --> 00:34:15,620 686 00:34:15,620 --> 00:34:17,070 Tôi phải đi - vì vậy đây của tải lên. 687 00:34:17,070 --> 00:34:17,639 Dưới đây là hình ảnh. 688 00:34:17,639 --> 00:34:21,780 Tôi phải đi tất cả các cách trở lại bắt đầu và đặt nó ở đó và sau đó 689 00:34:21,780 --> 00:34:23,820 đi và đặt nó vào thư mục. 690 00:34:23,820 --> 00:34:30,000 Vì vậy, nếu tôi đã chạy một cửa sổ thiết bị đầu cuối, và tôi muốn di chuyển một tập tin - 691 00:34:30,000 --> 00:34:30,409 [Nghe được] 692 00:34:30,409 --> 00:34:32,159 có thể nhìn thấy nó. 693 00:34:32,159 --> 00:34:37,940 Nếu tôi muốn di chuyển một tập tin, tôi có để đặt tên tập tin và sau đó 694 00:34:37,940 --> 00:34:40,860 đường dẫn đầy đủ tôi muốn gửi đến. 695 00:34:40,860 --> 00:34:45,110 >> Và sau đó là máy chủ không cho tôi quay trở lại. 696 00:34:45,110 --> 00:34:46,929 Và do đó, nó không cho phép tôi nhận được tập tin đó. 697 00:34:46,929 --> 00:34:47,670 Nhưng thông thường - 698 00:34:47,670 --> 00:34:49,360 vì vậy có một mã cho tải lên một tập tin. 699 00:34:49,360 --> 00:34:52,260 Vì vậy, thường những gì sẽ xảy ra là người không kiểm tra nếu tập tin của tôi 700 00:34:52,260 --> 00:34:57,920 kết thúc với jpeg., vì vậy tôi sẽ muốn kiểm tra. 701 00:34:57,920 --> 00:35:00,054 Hãy để tôi mở một ví dụ quá thật nhanh chóng. 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 Người này đúng - 705 00:35:09,230 --> 00:35:11,980 để dụ hai là kiểm tra nếu preg_match - 706 00:35:11,980 --> 00:35:14,180 ở đây nó là ở đây - 707 00:35:14,180 --> 00:35:19,660 để đảm bảo rằng kết thúc với PHP, đó là tốt. 708 00:35:19,660 --> 00:35:20,580 Điều này là tốt. 709 00:35:20,580 --> 00:35:22,820 Nhưng có một thực tế lớn Vấn đề này. 710 00:35:22,820 --> 00:35:24,600 Điều này là tốt. 711 00:35:24,600 --> 00:35:44,190 Nhưng nếu tôi đã đặt một tập tin gọi là myfavoritepicture.php.jpeg, tôi có thể 712 00:35:44,190 --> 00:35:50,060 vẫn có khả năng thoát khỏi những jpeg và chạy it.k Đó PHP nguy hiểm. 713 00:35:50,060 --> 00:35:53,850 Bạn không muốn người để có thể để chạy mã trên trang web của bạn. 714 00:35:53,850 --> 00:35:55,750 >> Nhưng sau đó jpeg. Cho phép nó vượt qua. 715 00:35:55,750 --> 00:36:00,720 Ý tưởng là những gì bạn thực sự muốn làm không có các tập tin, A. Nhưng, OK, những gì 716 00:36:00,720 --> 00:36:07,500 bạn thực sự muốn làm là đảm bảo rằng bạn đọc trên toàn thế giới. 717 00:36:07,500 --> 00:36:08,720 Và không có gì. Php trong đó. 718 00:36:08,720 --> 00:36:10,500 Không có php trong. tên tập tin toàn bộ. 719 00:36:10,500 --> 00:36:12,780 >> ĐỐI TƯỢNG: Nhưng bạn có thể đặt. jpeg vào cuối. 720 00:36:12,780 --> 00:36:15,830 Các máy chủ vẫn chạy mã. 721 00:36:15,830 --> 00:36:16,870 >> Luciano Arango: Không, nó sẽ không chạy lúc đầu. 722 00:36:16,870 --> 00:36:22,310 Bạn phải quay trở lại và cố gắng để xem nếu bạn có thể - 723 00:36:22,310 --> 00:36:24,210 >> ĐỐI TƯỢNG: Vì vậy, chúng ta phải - 724 00:36:24,210 --> 00:36:26,020 OK, chỉ là một tập hợp có liên quan đến - 725 00:36:26,020 --> 00:36:26,936 >> Luciano Arango: Vâng. 726 00:36:26,936 --> 00:36:29,230 >> ĐỐI TƯỢNG: OK. 727 00:36:29,230 --> 00:36:31,486 >> Luciano Arango: Vâng. 728 00:36:31,486 --> 00:36:31,900 OK. 729 00:36:31,900 --> 00:36:32,865 Bất kỳ câu hỏi nào khác không? 730 00:36:32,865 --> 00:36:33,180 OK. 731 00:36:33,180 --> 00:36:37,350 Tôi sẽ để lại điều này và sắp xếp của cố gắng để xem nếu các bạn có thể - 732 00:36:37,350 --> 00:36:40,490 những người khác nhiều hơn một chút phức tạp bởi vì họ đòi hỏi nhiều 733 00:36:40,490 --> 00:36:44,050 kiến thức về SQL hơn là chỉ bắt đầu kiến ​​thức về web là SQL và 734 00:36:44,050 --> 00:36:47,010 những gì JavaScript. 735 00:36:47,010 --> 00:36:49,730 Nhưng tôi sẽ cố gắng duy trì như thế, và hy vọng các bạn sẽ học 736 00:36:49,730 --> 00:36:53,230 về điều này và cố gắng để có một peek tại những gì bạn có thể làm và làm thế nào nhiều ví dụ 737 00:36:53,230 --> 00:36:54,420 bạn có thể nhận được thông qua. 738 00:36:54,420 --> 00:36:56,020 >> Bất cứ ai có bất kỳ khác câu hỏi về nó? 739 00:36:56,020 --> 00:36:59,387 740 00:36:59,387 --> 00:37:00,350 Đi trước. 741 00:37:00,350 --> 00:37:01,170 Yeah, bắn, bắn. 742 00:37:01,170 --> 00:37:01,580 Yeah, đi trước. 743 00:37:01,580 --> 00:37:01,850 Đi trước. 744 00:37:01,850 --> 00:37:02,310 >> ĐỐI TƯỢNG: OK. 745 00:37:02,310 --> 00:37:08,870 Vì vậy, tôi nghe nói về cách báo giá ảo thuật không đủ an toàn. 746 00:37:08,870 --> 00:37:09,280 >> Luciano Arango: Điều gì - 747 00:37:09,280 --> 00:37:10,110 Trích dẫn kỳ diệu? 748 00:37:10,110 --> 00:37:10,595 >> ĐỐI TƯỢNG: Vâng. 749 00:37:10,595 --> 00:37:15,445 Vì vậy, nó cho biết thêm - vì vậy bất cứ khi nào bạn nhập vào một cái gì đó, nó luôn luôn thêm dấu ngoặc kép. 750 00:37:15,445 --> 00:37:15,930 >> Luciano Arango: Vâng. 751 00:37:15,930 --> 00:37:16,000 Yeah. 752 00:37:16,000 --> 00:37:16,496 OK. 753 00:37:16,496 --> 00:37:19,113 >> ĐỐI TƯỢNG: Và sau đó tôi mặc dù làm việc, nhưng sau đó tôi tìm kiếm nó. 754 00:37:19,113 --> 00:37:21,648 Và nó nói nó không tốt. 755 00:37:21,648 --> 00:37:23,050 Nhưng tôi không chắc chắn lý do tại sao. 756 00:37:23,050 --> 00:37:23,360 >> Luciano Arango: Vâng. 757 00:37:23,360 --> 00:37:26,240 >> ĐỐI TƯỢNG: Không sử dụng Magic Quotes, bởi vì nó không an toàn. 758 00:37:26,240 --> 00:37:26,360 >> Luciano Arango: OK. 759 00:37:26,360 --> 00:37:31,735 Trích dẫn Vì vậy, Magic là khi bạn chèn SQL và nó đã được bổ sung thêm các báo giá cho bạn. 760 00:37:31,735 --> 00:37:33,520 >> ĐỐI TƯỢNG: Nó luôn luôn bổ sung thêm dấu ngoặc kép xung quanh bất cứ điều gì bạn đặt in 761 00:37:33,520 --> 00:37:34,210 >> Luciano Arango: Vâng. 762 00:37:34,210 --> 00:37:37,190 Vì vậy vấn đề với đó là - 763 00:37:37,190 --> 00:37:38,445 Tôi sẽ có một cái nhìn tại - 764 00:37:38,445 --> 00:37:41,390 >> ĐỐI TƯỢNG: Làm thế nào để có được nó các câu lệnh SQL? 765 00:37:41,390 --> 00:37:44,690 Hoặc tôi đoán nó có thể là như quote chọn. 766 00:37:44,690 --> 00:37:49,030 >> Luciano Arango: Vâng, bạn cần giá tốt cho SQL. 767 00:37:49,030 --> 00:37:52,900 >> ĐỐI TƯỢNG: Không, nhưng máy chủ hiện nó cho bạn. 768 00:37:52,900 --> 00:37:54,460 >> Luciano Arango: Những dấu ngoặc kép nhỏ ngay tại đây, những dấu ngoặc kép ít? 769 00:37:54,460 --> 00:37:55,670 >> ĐỐI TƯỢNG: Vâng. 770 00:37:55,670 --> 00:37:56,450 >> Luciano Arango: Vâng. 771 00:37:56,450 --> 00:37:59,860 Vấn đề là bạn có thể nhận xét ra cuối cùng - 772 00:37:59,860 --> 00:38:05,770 OK, vì vậy những gì tôi có thể làm là tôi có thể bình luận ra - vì vậy chúng ta hãy nhìn vào - cho tôi 773 00:38:05,770 --> 00:38:07,920 mở một tập tin chỉnh sửa văn bản. 774 00:38:07,920 --> 00:38:09,610 Hãy để tôi chỉ cần chỉnh sửa này ở đây trực tiếp. 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 Các bạn có thể thấy rằng rõ ràng không? 778 00:38:23,710 --> 00:38:29,730 Những gì tôi có thể làm là tôi có thể bình luận ra người cuối cùng. 779 00:38:29,730 --> 00:38:32,190 Điều này sẽ nhận xét ra người cuối cùng. 780 00:38:32,190 --> 00:38:36,760 Và sau đó tôi sẽ đặt một ở đây, đặt tất cả những thứ độc hại ở đây. 781 00:38:36,760 --> 00:38:39,840 782 00:38:39,840 --> 00:38:42,630 >> Vì vậy, người sử dụng thực sự nhập, phải không? 783 00:38:42,630 --> 00:38:45,230 Người sử dụng không phải nhập những điều, phải không? 784 00:38:45,230 --> 00:38:47,430 Đây là những gì tôi sẽ đầu vào như người cố gắng để có được bên trong. 785 00:38:47,430 --> 00:38:49,430 Tôi sẽ đưa vào - 786 00:38:49,430 --> 00:38:59,290 787 00:38:59,290 --> 00:39:00,180 đó là một dấu ngoặc kép. 788 00:39:00,180 --> 00:39:01,760 Nó chỉ là nguệch ngoạc do nhầm lẫn. 789 00:39:01,760 --> 00:39:15,080 790 00:39:15,080 --> 00:39:19,400 Và sau đó những gì mã là sẽ làm gì - 791 00:39:19,400 --> 00:39:20,190 xin lỗi, tôi sẽ thực hiện việc này ra. 792 00:39:20,190 --> 00:39:22,170 Những gì các mã được sẽ làm là nó sẽ thêm đầu tiên 793 00:39:22,170 --> 00:39:24,030 dấu ngoặc kép ở đây. 794 00:39:24,030 --> 00:39:26,040 Và nó sẽ thêm cuối cùng dấu ngoặc kép là tốt. 795 00:39:26,040 --> 00:39:29,350 796 00:39:29,350 --> 00:39:33,270 >> Và nó cũng sẽ thêm cuối cùng, cuối cùng đánh dấu ngoặc kép. 797 00:39:33,270 --> 00:39:37,380 Nhưng tôi cho ý kiến ​​các báo giá đánh dấu ra, do đó họ không chạy. 798 00:39:37,380 --> 00:39:41,440 Và tôi đang hoàn thành báo giá này đánh dấu ở đây. 799 00:39:41,440 --> 00:39:42,290 Bạn có hiểu không? 800 00:39:42,290 --> 00:39:43,750 Bạn bị mất? 801 00:39:43,750 --> 00:39:45,880 Tôi có thể bình luận báo giá mới nhất nhãn hiệu, và chăm sóc của 802 00:39:45,880 --> 00:39:46,680 dấu ngoặc kép đầu tiên. 803 00:39:46,680 --> 00:39:47,350 >> ĐỐI TƯỢNG: Và kết thúc đầu tiên. 804 00:39:47,350 --> 00:39:47,480 >> Luciano Arango: Vâng. 805 00:39:47,480 --> 00:39:48,400 Và chỉ cần hoàn thành đầu tiên. 806 00:39:48,400 --> 00:39:48,790 Vâng, đúng thế. 807 00:39:48,790 --> 00:39:50,800 Đó là những gì tôi có thể làm. 808 00:39:50,800 --> 00:39:51,890 Yeah. 809 00:39:51,890 --> 00:39:52,980 Bất kỳ câu hỏi khác như thế? 810 00:39:52,980 --> 00:39:54,230 Đó là một câu hỏi lớn. 811 00:39:54,230 --> 00:39:56,960 812 00:39:56,960 --> 00:39:59,790 Không, có, có lẽ. 813 00:39:59,790 --> 00:40:06,150 Hy vọng rằng, các bạn sẽ loại làm ý nghĩa hơn khi bạn học SQL và 814 00:40:06,150 --> 00:40:06,650 những điều như thế. 815 00:40:06,650 --> 00:40:07,980 Nhưng chắc chắn rằng bạn - 816 00:40:07,980 --> 00:40:10,340 giữ những công cụ này trong đồng hồ. 817 00:40:10,340 --> 00:40:12,760 Xin lỗi, những công cụ này ở đây. 818 00:40:12,760 --> 00:40:14,200 Những công cụ này là rất lớn. 819 00:40:14,200 --> 00:40:17,190 Nếu ai có bất kỳ câu hỏi, bạn cũng có thể gửi email cho tôi. 820 00:40:17,190 --> 00:40:19,020 Đây là email bình thường của tôi. 821 00:40:19,020 --> 00:40:25,015 Và đây là email công việc của tôi, mà là khi tôi làm việc ở vùng biển. 822 00:40:25,015 --> 00:40:26,040 >> OK, cảm ơn. 823 00:40:26,040 --> 00:40:26,740 Cảm ơn mọi người. 824 00:40:26,740 --> 00:40:27,860 Bạn tốt để đi. 825 00:40:27,860 --> 00:40:28,830 Bạn không cần phải ở lại đây. 826 00:40:28,830 --> 00:40:29,570 Không vỗ tay. 827 00:40:29,570 --> 00:40:30,170 Đó là lạ. 828 00:40:30,170 --> 00:40:31,420 OK, cảm ơn mọi người. 829 00:40:31,420 --> 00:40:32,320