1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:10,300 >> LUCIANO ARANGO: OK, les gars. 3 00:00:10,300 --> 00:00:11,550 Mon nom est Luciano Arango. 4 00:00:11,550 --> 00:00:13,915 Je suis un étudiant en deuxième année dans Adams House. 5 00:00:13,915 --> 00:00:17,550 Et nous allons parler de sécurité sur le Web défense active. 6 00:00:17,550 --> 00:00:24,220 Donc, je travaille pour le Bureau de l'information Sécurité dans les mers. 7 00:00:24,220 --> 00:00:28,670 Et pendant l'été, j'ai fait un stage à SeguraTec, qui était un informations 8 00:00:28,670 --> 00:00:31,310 entreprise de sécurité qui a servi pour la Banque de Columbia. 9 00:00:31,310 --> 00:00:34,740 C'est surtout là que j'ai appris ce que j'ai appris jusqu'à présent. 10 00:00:34,740 --> 00:00:37,990 >> Et si une partie du matériel que nous sommes aller sur aujourd'hui, nous n'avons pas 11 00:00:37,990 --> 00:00:39,670 vraiment parlé en classe. 12 00:00:39,670 --> 00:00:40,410 Mais nous allons bientôt. 13 00:00:40,410 --> 00:00:42,360 Ça va être comme SQL, JavaScript. 14 00:00:42,360 --> 00:00:44,870 Et nous n'avons pas vraiment passé au-dessus. 15 00:00:44,870 --> 00:00:47,730 Donc, je peux trier de vol à travers elle, et vous pourriez ne pas savoir certaines choses. 16 00:00:47,730 --> 00:00:48,890 Mais bientôt, vous allez apprendre. 17 00:00:48,890 --> 00:00:52,080 Et il va tout faire sens. 18 00:00:52,080 --> 00:00:54,010 Et une autre chose - 19 00:00:54,010 --> 00:00:55,780 rester éthique. 20 00:00:55,780 --> 00:01:00,560 Certaines des choses que vous apprenez, vous pourrait utiliser des moyens non-éthiques. 21 00:01:00,560 --> 00:01:01,950 >> Si c'est le vôtre, certainement essayer. 22 00:01:01,950 --> 00:01:04,500 Je motive vraiment vous les gars d'essayer vos propres serveurs, essayez 23 00:01:04,500 --> 00:01:05,519 aller à l'intérieur. 24 00:01:05,519 --> 00:01:08,500 Voyez si vous pouvez y pénétrer, si vous pouvez obtenir à l'intérieur. 25 00:01:08,500 --> 00:01:09,560 Mais pas de quelqu'un d'autre. 26 00:01:09,560 --> 00:01:12,390 Les flics n'ont pas vraiment aiment les blagues et Dans l'ensemble, nous avons mis cela ici. 27 00:01:12,390 --> 00:01:14,040 Nous avons été déconner. 28 00:01:14,040 --> 00:01:15,780 Ils obtiennent vraiment en colère. 29 00:01:15,780 --> 00:01:18,700 >> Alors rendez-vous sur ce site. 30 00:01:18,700 --> 00:01:23,560 Je l'ai ouvert ici. 31 00:01:23,560 --> 00:01:26,780 Il s'agit d'un site web, et il a un tas d'exemples. 32 00:01:26,780 --> 00:01:30,000 Ce qui se passe est que le premier exemple est une sorte de va être beaucoup plus facile 33 00:01:30,000 --> 00:01:33,470 que le dernier exemple, dans un sens que le premier exemple 34 00:01:33,470 --> 00:01:34,970 est totalement sécurisé. 35 00:01:34,970 --> 00:01:40,850 Et le dernier est en quelque sorte de ce qu'est un personne de la sécurité web normale ferait. 36 00:01:40,850 --> 00:01:42,760 Mais vous pouvez toujours tri de contourner cela. 37 00:01:42,760 --> 00:01:44,860 Et nous allons concentrer sur un et deux, un et deux exemples. 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 Commençons par cross-site scripting. 41 00:01:52,780 --> 00:01:56,100 Le JavaScript est exécuté sur le navigateur du client. 42 00:01:56,100 --> 00:01:59,980 C'est un langage de programmation que vous utilisez pour fonctionner sur le navigateur du client afin 43 00:01:59,980 --> 00:02:04,120 vous n'avez pas à mettre à jour le site Web et revenir sur le serveur. 44 00:02:04,120 --> 00:02:04,940 Vous avez en cours d'exécution. 45 00:02:04,940 --> 00:02:08,870 Par exemple, Facebook, vous n'avez pas pour recharger le site pour le nouveau statut 46 00:02:08,870 --> 00:02:09,710 mises à jour viennent. 47 00:02:09,710 --> 00:02:12,170 Il s'agit d'utiliser JavaScript pour générer toutes ces choses. 48 00:02:12,170 --> 00:02:16,290 Donc, nous pouvons injecter du code JavaScript malveillant dans les sites Web. 49 00:02:16,290 --> 00:02:20,890 Et de cette façon, lorsque nous envoyons un lien vers quelqu'un, nous pourrions sorte de l'envoyer avec 50 00:02:20,890 --> 00:02:23,050 une partie du code que nous voulons. 51 00:02:23,050 --> 00:02:26,450 >> Il ya persistant et non persistant JavaScript - 52 00:02:26,450 --> 00:02:30,640 cross-site persistant et non persistant script, je veux dire. 53 00:02:30,640 --> 00:02:33,760 Et la différence étant que la persistance est JavaScript qui sera 54 00:02:33,760 --> 00:02:36,060 enregistré sur le site. 55 00:02:36,060 --> 00:02:39,780 Et non-persistant sera JavaScript qui aura fait juste arriver une fois. 56 00:02:39,780 --> 00:02:41,795 Alors regardons un exemple très vite. 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 Alors ce site, simple, rien ne se passe ici. 60 00:02:51,620 --> 00:02:53,070 Et nous allons essayer de insérer du JavaScript. 61 00:02:53,070 --> 00:02:58,110 Donc, la façon dont nous commençons à écrire JavaScript c'est que nous commençons avec le script de départ. 62 00:02:58,110 --> 00:03:00,570 Et nous fermons avec script. 63 00:03:00,570 --> 00:03:03,770 Nous allons simplement mettre un message - 64 00:03:03,770 --> 00:03:05,410 Je vais vous montrer - 65 00:03:05,410 --> 00:03:06,500 alerte. 66 00:03:06,500 --> 00:03:11,150 Alert est une fonction JavaScript utilise pour afficher quelque chose. 67 00:03:11,150 --> 00:03:12,400 Essayons donc il très vite. 68 00:03:12,400 --> 00:03:15,600 69 00:03:15,600 --> 00:03:18,944 Je vais y aller, bonjour alerte. 70 00:03:18,944 --> 00:03:20,400 Eh bien, j'ai oublié de mettre - 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 Donc, c'est simple. 74 00:03:26,540 --> 00:03:28,730 >> Nous mettons JavaScript sur un site web, et il est venu. 75 00:03:28,730 --> 00:03:31,200 Et il sorte de ne se produit sur notre site Web, à droite? 76 00:03:31,200 --> 00:03:33,040 Il semble donc que ce n'est pas un problème, non? 77 00:03:33,040 --> 00:03:34,920 Je veux dire, comment pourriez-vous utiliser cette malveillance? 78 00:03:34,920 --> 00:03:39,930 Ainsi, la manière que les pirates font c'est vraiment simple. 79 00:03:39,930 --> 00:03:40,970 Ils vont l'attraper. 80 00:03:40,970 --> 00:03:43,750 Ils peuvent envoyer ce lien à vous. 81 00:03:43,750 --> 00:03:46,780 Si je vais envoyer ce lien pour vous maintenant, et vous ouvrir, il va 82 00:03:46,780 --> 00:03:51,620 dire bonjour, dire que mon site web vous dit bonjour. 83 00:03:51,620 --> 00:03:57,280 >> Et si je devais dire quelque chose d'un peu plus intelligent, si je tire un 84 00:03:57,280 --> 00:03:59,880 Fonction JavaScript je genre de déjà écrit - 85 00:03:59,880 --> 00:04:03,940 mais si vous regardez, je vais sur elle avant que je l'ai écrit. 86 00:04:03,940 --> 00:04:06,650 Nous allons donc définir un délai. 87 00:04:06,650 --> 00:04:08,450 Nous allons attendre pour un couple de secondes. 88 00:04:08,450 --> 00:04:13,970 En fait, nous allons attendre, si Je ne me trompe pas, les cinq secondes. 89 00:04:13,970 --> 00:04:15,870 Cela va en millisecondes. 90 00:04:15,870 --> 00:04:18,640 Et puis ce que nous allons faire, c'est que nous sommes aller à avertir que la connexion 91 00:04:18,640 --> 00:04:21,459 expiré à identifier Dans 92 00:04:21,459 --> 00:04:23,990 Et nous allons changer l'emplacement à un emplacement différent. 93 00:04:23,990 --> 00:04:30,370 94 00:04:30,370 --> 00:04:32,970 >> Donc, si je vous envoie ce site à quelqu'un, ils vont être 95 00:04:32,970 --> 00:04:34,380 navigation autour, calme. 96 00:04:34,380 --> 00:04:35,650 Rien ne se passe. 97 00:04:35,650 --> 00:04:38,550 Et dans les cinq secondes, il va à-dire, votre login expiré. 98 00:04:38,550 --> 00:04:40,200 S'il vous plaît vous connecter Dans 99 00:04:40,200 --> 00:04:43,400 Une fois qu'ils cliquent sur OK, je vais prendre à un autre site Web. 100 00:04:43,400 --> 00:04:45,980 Vraisemblablement, le site va être semblable au site que 101 00:04:45,980 --> 00:04:47,280 ils étaient avant. 102 00:04:47,280 --> 00:04:50,770 Et ils vont identifier leur pouvoirs dans mon site à la place de 103 00:04:50,770 --> 00:04:51,850 leur site web. 104 00:04:51,850 --> 00:04:54,780 >> Et si je peux envoyer des gens un envoyer un email avec ce lien. 105 00:04:54,780 --> 00:04:56,240 Je dis, oh, voici un lien. 106 00:04:56,240 --> 00:04:57,290 Il s'agit d'une banque, par exemple. 107 00:04:57,290 --> 00:05:01,390 Dis-je, ici, aller sur ce lien. 108 00:05:01,390 --> 00:05:03,730 Et une fois qu'ils envoient, ils sont va être la navigation autour. 109 00:05:03,730 --> 00:05:07,560 Je peux attendre pendant 15 secondes, 20 secondes, puis pop que s'il vous plaît connectez-vous revenir dans 110 00:05:07,560 --> 00:05:08,840 signer à nouveau. 111 00:05:08,840 --> 00:05:10,120 Les gars, vous pouvez essayer avec beaucoup plus de choses. 112 00:05:10,120 --> 00:05:13,190 C'est compliqué parce que vous avez n'ont pas vu JavaScript, donc vous pourriez 113 00:05:13,190 --> 00:05:14,750 sais pas certaines fonctions. 114 00:05:14,750 --> 00:05:18,625 Mais tout ce que vous avez à faire est de commencer avec un script, terminer par script. 115 00:05:18,625 --> 00:05:22,105 116 00:05:22,105 --> 00:05:25,510 Et vous pouvez mettre n'importe quoi dans le milieu. 117 00:05:25,510 --> 00:05:27,350 >> Alert est une fonction, attendez. 118 00:05:27,350 --> 00:05:29,365 l'emplacement de la fenêtre vous emmène vers un nouvel emplacement. 119 00:05:29,365 --> 00:05:31,370 Mais vous pouvez faire beaucoup plus. 120 00:05:31,370 --> 00:05:32,630 Et si l'idée est que nous prenons cela au large. 121 00:05:32,630 --> 00:05:39,350 Si je vais à l'exemple de deux, et je mis dans ce même code, il est 122 00:05:39,350 --> 00:05:40,210 ne va pas fonctionner. 123 00:05:40,210 --> 00:05:43,620 Donc, il est tout imprimer parce Qu'est-ce que le site à l'origine 124 00:05:43,620 --> 00:05:50,350 fait est si je mets quelque chose ici, il va l'imprimer ici. 125 00:05:50,350 --> 00:05:52,390 Donc ce n'est pas l'impression quoi que ce soit. 126 00:05:52,390 --> 00:05:55,560 Cet exemple est en fait en vérifiant pour voir si le script est là. 127 00:05:55,560 --> 00:05:57,163 Donc oui, allez-y. 128 00:05:57,163 --> 00:05:57,606 Demandez-moi. 129 00:05:57,606 --> 00:05:59,560 >> PUBLIC: N'est-ce pas l'envoi un GET ou POST demande? 130 00:05:59,560 --> 00:06:00,670 >> LUCIANO ARANGO: Ouais. ils sont envoyer une demande d'obtention. 131 00:06:00,670 --> 00:06:01,350 >> PUBLIC: Il est? 132 00:06:01,350 --> 00:06:02,490 >> LUCIANO ARANGO: Ouais. 133 00:06:02,490 --> 00:06:04,030 Aussi navigateurs utilisent les demandes de poste. 134 00:06:04,030 --> 00:06:07,470 Mais je suis en train de montrer les requêtes GET afin que nous puissions voir ce qui est 135 00:06:07,470 --> 00:06:10,760 passe réellement. 136 00:06:10,760 --> 00:06:12,880 Et si nous regardons ce code - si ce n'est pas plus de travail. 137 00:06:12,880 --> 00:06:24,870 Et si nous prenons un coup d'oeil à ce code, ça va être dans l'exemple de deux. 138 00:06:24,870 --> 00:06:29,300 Qu'est-ce que cette personne fait, la personne en charge de votre navigateur - 139 00:06:29,300 --> 00:06:35,370 ouvrir, OK - 140 00:06:35,370 --> 00:06:39,290 remplace le mot script. 141 00:06:39,290 --> 00:06:42,850 C'est PHP, qui vous les gars pourrait ont encore vu un peu de. 142 00:06:42,850 --> 00:06:46,250 >> Il vient remplacer le script de mot avec le nom. 143 00:06:46,250 --> 00:06:50,895 Donc, cependant, si je vais de l'avant et vient de mettre en - 144 00:06:50,895 --> 00:06:58,520 145 00:06:58,520 --> 00:07:02,360 si je prends mon code à nouveau, et je vais de le modifier un peu. 146 00:07:02,360 --> 00:07:15,010 Au lieu de scénario, je vais changer pour script avec un grand R. Et 147 00:07:15,010 --> 00:07:16,390 nous allons voir si ce code fonctionne. 148 00:07:16,390 --> 00:07:19,090 Donc, il n'a pas l'imprimer, qui est un bon signe. 149 00:07:19,090 --> 00:07:21,990 Et nous espérons que dans deux secondes, il va apparaître. 150 00:07:21,990 --> 00:07:22,820 >> Votre identifiant expiré. 151 00:07:22,820 --> 00:07:23,210 OK. 152 00:07:23,210 --> 00:07:24,460 C'est bon. 153 00:07:24,460 --> 00:07:27,670 Donc, la vérification de script peut ne fonctionnera pas nécessairement. 154 00:07:27,670 --> 00:07:28,130 La personne - 155 00:07:28,130 --> 00:07:32,290 il peut également vérifier pour le script majuscule, écriture minuscule, str cas 156 00:07:32,290 --> 00:07:34,180 comparer, assurez-vous qu'ils sont la même chose. 157 00:07:34,180 --> 00:07:38,480 Mais le pirate peut toujours faire un peu ce que nous l'avons fait dans Vigenère quand nous avons déménagé 158 00:07:38,480 --> 00:07:40,620 retour d'un couple caractères, aller de l'avant. 159 00:07:40,620 --> 00:07:43,470 Et il peut trouver une façon de mettre un script retour là-bas afin qu'il puisse injecter 160 00:07:43,470 --> 00:07:44,460 ce script. 161 00:07:44,460 --> 00:07:50,370 >> Donc ce que vous voulez utiliser est htmlspecialchars à 162 00:07:50,370 --> 00:07:51,330 protéger votre site Web. 163 00:07:51,330 --> 00:07:56,490 Et ce que cela fait est qu'il rend vous que ce que vous mettez dans - 164 00:07:56,490 --> 00:07:59,610 par exemple, de citations ou ce supérieur ou inférieur à - 165 00:07:59,610 --> 00:08:04,701 est remplacé par quelque chose ce ne sera pas - 166 00:08:04,701 --> 00:08:05,951 laissez-moi un zoom avant ici - 167 00:08:05,951 --> 00:08:08,730 168 00:08:08,730 --> 00:08:09,685 l'esperluette réelle. 169 00:08:09,685 --> 00:08:13,420 Il remplacera ceux spéciale HTML personnages que nous voyons quand nous sommes 170 00:08:13,420 --> 00:08:14,670 parler - 171 00:08:14,670 --> 00:08:18,635 172 00:08:18,635 --> 00:08:20,740 oh, ça va me ramener à - 173 00:08:20,740 --> 00:08:24,220 174 00:08:24,220 --> 00:08:25,380 ces caractères ici. 175 00:08:25,380 --> 00:08:28,180 >> Ces signifient que quelque chose est à venir. 176 00:08:28,180 --> 00:08:31,570 Pour HTML, cette tranche de commencer nous dit que quelque chose 177 00:08:31,570 --> 00:08:33,299 HTML correspondant est à venir. 178 00:08:33,299 --> 00:08:33,980 Et nous voulons nous débarrasser de cela. 179 00:08:33,980 --> 00:08:36,200 Nous ne voulons pas mettre en HTML website.k Nous ne voulons pas que l'utilisateur 180 00:08:36,200 --> 00:08:40,260 en mesure de mettre quelque chose dans leur site Web qui peuvent influer sur leur site, comme 181 00:08:40,260 --> 00:08:43,480 script ou HTML ou quelque chose comme ça. 182 00:08:43,480 --> 00:08:53,090 Ce qui est important est que vous désinfecter l'entrée de l'utilisateur. 183 00:08:53,090 --> 00:08:54,720 >> Ainsi, les utilisateurs peuvent entrée beaucoup de choses. 184 00:08:54,720 --> 00:08:58,110 Il peut entrer un tas de trucs à essayer de tromper votre navigateur en encore 185 00:08:58,110 --> 00:08:59,410 l'exécution de ce code de script. 186 00:08:59,410 --> 00:09:02,870 Qu'est-ce que vous voulez faire n'est pas seulement l'air pour le script, mais la recherche de tout 187 00:09:02,870 --> 00:09:04,250 qui pourrait être malveillant. 188 00:09:04,250 --> 00:09:06,800 Et htmlspecialchars feront que pour vous, si vous n'avez pas 189 00:09:06,800 --> 00:09:07,340 à s'inquiéter à ce sujet. 190 00:09:07,340 --> 00:09:12,280 Mais n'essayez pas de le faire par vous-même sorte de votre propre code. 191 00:09:12,280 --> 00:09:14,055 Tout le monde est clair sur XSS? 192 00:09:14,055 --> 00:09:14,370 >> OK. 193 00:09:14,370 --> 00:09:16,355 Allons à l'injection SQL. 194 00:09:16,355 --> 00:09:21,010 Donc injection SQL est probablement le numéro un de la vulnérabilité 195 00:09:21,010 --> 00:09:22,490 dans différents sites. 196 00:09:22,490 --> 00:09:24,350 Je veux dire, un bon exemple - 197 00:09:24,350 --> 00:09:27,350 J'étais juste des recherches plus loin pour cette chose. 198 00:09:27,350 --> 00:09:34,430 Et j'ai trouvé cet article impressionnant, où J'ai vu que Harvard a été violé, 199 00:09:34,430 --> 00:09:35,390 a été piraté. 200 00:09:35,390 --> 00:09:37,370 Et je me demandais, bien, comment pourraient-ils le faire? 201 00:09:37,370 --> 00:09:41,660 Harvard est la plus impressionnante, la plus garantir université jamais. 202 00:09:41,660 --> 00:09:43,850 Droite? 203 00:09:43,850 --> 00:09:45,410 Eh bien, à violer les serveurs, les pirates ont utilisé un 204 00:09:45,410 --> 00:09:47,710 technique appelée injection SQL. 205 00:09:47,710 --> 00:09:50,250 >> Donc ce qui se passe sur un jour le jour. 206 00:09:50,250 --> 00:09:53,590 Les gens oublient de prendre en compte pour l'injection de SQL. 207 00:09:53,590 --> 00:09:54,930 Harvard fait. 208 00:09:54,930 --> 00:10:00,050 Je pense qu'il dit ici, Princeton, Stanford, Cornell. 209 00:10:00,050 --> 00:10:03,550 Alors, comment pouvons-nous - alors quel est ce SQL injection qui apporte tous ces 210 00:10:03,550 --> 00:10:05,668 gens vers le bas? 211 00:10:05,668 --> 00:10:08,010 OK. 212 00:10:08,010 --> 00:10:12,090 Donc SQL est un langage de programmation qui nous utilisons pour accéder à des bases de données. 213 00:10:12,090 --> 00:10:14,560 Ce que nous faisons est que nous choisissons - 214 00:10:14,560 --> 00:10:18,510 Donc ce que cela se lit en ce moment est sélectionné tout sur la table. 215 00:10:18,510 --> 00:10:22,640 >> SQL, il se transforme en ces bases de données que des tables pleines de renseignements. 216 00:10:22,640 --> 00:10:26,550 Donc, sélectionnez tout d'utilisateurs où le nom est le nom d'utilisateur. 217 00:10:26,550 --> 00:10:28,120 Droite? 218 00:10:28,120 --> 00:10:30,770 Assez simple. 219 00:10:30,770 --> 00:10:34,490 L'idée de l'injection SQL, c'est que nous insérer du code malveillant qui serait 220 00:10:34,490 --> 00:10:37,270 tromper le serveur en exécutant quelque chose différent de ce qu'il 221 00:10:37,270 --> 00:10:38,430 était à l'origine l'exécution. 222 00:10:38,430 --> 00:10:44,970 Donc, disons que le nom d'utilisateur, nous avons mis en ou 1 est égal à 1. 223 00:10:44,970 --> 00:10:46,700 Nous avons donc mis en ou 1 est égal à 1. 224 00:10:46,700 --> 00:10:49,890 La façon dont il va lire maintenant sera de sélection des utilisateurs, tout de 225 00:10:49,890 --> 00:10:51,360 utilisateurs - c'est tout - 226 00:10:51,360 --> 00:10:55,880 où nom est le nom d'utilisateur, mais nom d'utilisateur est égal à 1 ou 1. 227 00:10:55,880 --> 00:11:01,760 >> Donc le nom n'est rien ou 1 est égal à 1. 228 00:11:01,760 --> 00:11:04,060 1 est égal à 1 est toujours vrai. 229 00:11:04,060 --> 00:11:07,690 Donc, ce sera toujours retourner des informations la part des utilisateurs. 230 00:11:07,690 --> 00:11:08,100 OK. 231 00:11:08,100 --> 00:11:10,030 Nous n'avons pas besoin d'avoir la nom d'utilisateur correct. 232 00:11:10,030 --> 00:11:14,240 Nous pouvons juste avoir quelque chose que nous voulons, et il retourne des informations 233 00:11:14,240 --> 00:11:15,690 que nous avons besoin. 234 00:11:15,690 --> 00:11:17,160 Voyons un autre exemple. 235 00:11:17,160 --> 00:11:22,720 >> Si nous avons tout sélectionner de l'utilisateur, où nom est DROP TABLE users - 236 00:11:22,720 --> 00:11:26,420 afin que pensez-vous de cette volonté faire si je mets le nom d'utilisateur 237 00:11:26,420 --> 00:11:29,560 que les utilisateurs DROP TABLE? 238 00:11:29,560 --> 00:11:30,230 Quelqu'un a une idée? 239 00:11:30,230 --> 00:11:31,050 Oui. 240 00:11:31,050 --> 00:11:32,470 >> PUBLIC: Il va dire à vider toutes les tables. 241 00:11:32,470 --> 00:11:35,460 >> LUCIANO ARANGO: Il va nous dire pour vider tout le site, 242 00:11:35,460 --> 00:11:38,290 tout dans la base de données. 243 00:11:38,290 --> 00:11:41,910 Et ce que les gens utilisent cela pour - si Je vais vous montrer les gars. 244 00:11:41,910 --> 00:11:45,462 J'ai désactivé tomber les tables parce que je ne veux pas que vous 245 00:11:45,462 --> 00:11:48,240 les gars de laisser tomber mes tableaux. 246 00:11:48,240 --> 00:11:49,850 Jetons un coup d'oeil. 247 00:11:49,850 --> 00:11:54,410 Donc, ce tire simplement jusqu'à l'information pour une certaine personne. 248 00:11:54,410 --> 00:11:57,550 Alors, comment pouvons-nous savoir si ce n'est touchés par injection SQL. 249 00:11:57,550 --> 00:12:01,545 Nous allons vérifier très vite si nous pouvons mettre quelque chose - 250 00:12:01,545 --> 00:12:04,990 251 00:12:04,990 --> 00:12:06,080 permettez-moi de copier ce code. 252 00:12:06,080 --> 00:12:08,140 Je vais aller sur elle en une seconde. 253 00:12:08,140 --> 00:12:12,210 Je vais mettre la racine et 1 est égal à 1. 254 00:12:12,210 --> 00:12:15,510 >> Ce droit ici, ce signe pour cent 23 - 255 00:12:15,510 --> 00:12:19,970 ce qu'il est vraiment, si je regarder ici sur - 256 00:12:19,970 --> 00:12:23,820 la façon dont HTML prend en nombre, si vous jetez un oeil à quand je mets dans un espace 257 00:12:23,820 --> 00:12:28,380 ici - si je devais quelque chose de l'espace ici, il le change à un pour cent 2. 258 00:12:28,380 --> 00:12:31,420 Vous ne trouvez ce que vous les gars ici quand je mets dans un espace? 259 00:12:31,420 --> 00:12:36,710 La façon dont cela fonctionne est que vous ne pouvez envoyer des valeurs ASCII par HTML. 260 00:12:36,710 --> 00:12:40,330 Alors qu'il remplace, par exemple, un espace avec pour cent 20. 261 00:12:40,330 --> 00:12:41,970 Je ne sais pas si vous les gars ont vu cela auparavant. 262 00:12:41,970 --> 00:12:45,100 >> Il remplace un hashtag avec 23 pour cent. 263 00:12:45,100 --> 00:12:50,840 Nous avons besoin d'un hashtag à la fin ou déclaration afin que nous puissions dire à la 264 00:12:50,840 --> 00:13:00,885 base de données d'oublier de commenter ce dernier point-virgule à la fin. 265 00:13:00,885 --> 00:13:03,060 Nous voulons qu'il pense pas à ce sujet. 266 00:13:03,060 --> 00:13:05,980 Nous voulons juste qu'il fonctionne tout que nous avons préalablement et 267 00:13:05,980 --> 00:13:07,450 commenter cela. 268 00:13:07,450 --> 00:13:08,710 Jetons un coup d'oeil. 269 00:13:08,710 --> 00:13:14,670 >> Donc, si je devais mettre quelque chose de mal - disons par exemple, je mets deux égaux 270 00:13:14,670 --> 00:13:15,690 1, il ne me donne rien. 271 00:13:15,690 --> 00:13:22,930 Quand je mets en 1 est égal à 1, et il ne retourner quelque chose, cela me dit que 272 00:13:22,930 --> 00:13:24,660 ce est vulnérable à une injection SQL. 273 00:13:24,660 --> 00:13:29,090 Je sais maintenant que tout ce Je mets après - 274 00:13:29,090 --> 00:13:39,110 et par exemple, supprimer des tables ou quelque chose comme ça 275 00:13:39,110 --> 00:13:41,190 va certainement travailler. 276 00:13:41,190 --> 00:13:44,350 Je sais que c'est vulnérable à l'injection SQL parce que je sais que 277 00:13:44,350 --> 00:13:49,850 sous le capot, c'est de laisser moi faire une chose est égal à 1. 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 >> Et si nous regardons ces autres, numéro deux et numéro trois, c'est 281 00:13:56,540 --> 00:13:59,110 va faire un peu plus de vérification sous la 282 00:13:59,110 --> 00:14:03,680 capot de ce qu'il est. 283 00:14:03,680 --> 00:14:07,425 Donc, toute personne permettre à la baisse encore rien ou essayé? 284 00:14:07,425 --> 00:14:08,760 Avez-vous les gars sorte de SQL obtenir encore? 285 00:14:08,760 --> 00:14:10,430 Parce que je sais que vous n'avez pas encore vu, si c'est le genre de 286 00:14:10,430 --> 00:14:11,759 confusion pour vous les gars. 287 00:14:11,759 --> 00:14:16,160 288 00:14:16,160 --> 00:14:18,480 Jetons un coup d'oeil. 289 00:14:18,480 --> 00:14:21,270 Alors, quelle est la façon de prévenir SQLI? 290 00:14:21,270 --> 00:14:21,390 OK. 291 00:14:21,390 --> 00:14:23,330 Donc ce qui est vraiment important parce que vous les gars veulent absolument éviter 292 00:14:23,330 --> 00:14:24,090 ce dans vos sites Web. 293 00:14:24,090 --> 00:14:28,040 >> Sinon, tous vos amis vont se moquer de vous quand ils tombent tous 294 00:14:28,040 --> 00:14:29,390 vos tables. 295 00:14:29,390 --> 00:14:36,150 Donc, l'idée est que vous réparez le SQL d'une certaine façon, alors vous correspondez 296 00:14:36,150 --> 00:14:41,940 ce que les entrées de l'utilisateur avec une certaine chaîne. 297 00:14:41,940 --> 00:14:46,120 Ainsi, la façon dont cela fonctionne est que vous préparer la base de données. 298 00:14:46,120 --> 00:14:50,830 Vous sélectionnez le nom, la couleur, et les calories à partir d'une base de données appelée fruits. 299 00:14:50,830 --> 00:14:53,580 Et puis où calories est inférieur, et nous mettons un point d'interrogation, il 300 00:14:53,580 --> 00:14:56,530 dire que nous allons à l'entrée quelque chose dans une seconde. 301 00:14:56,530 --> 00:14:58,850 >> Et la couleur est égale, et nous pose une question marque en disant que nous allons 302 00:14:58,850 --> 00:15:00,913 entrée quelque chose dans un second aussi. 303 00:15:00,913 --> 00:15:02,660 OK? 304 00:15:02,660 --> 00:15:09,920 Et puis nous exécutons, en mettant en 150 et le rouge. 305 00:15:09,920 --> 00:15:12,820 Et ce sera vérifiez vous que ces deux - 306 00:15:12,820 --> 00:15:15,300 ce tableau va vérifier que ceux-ci deux sont un nombre entier et 307 00:15:15,300 --> 00:15:16,550 qu'il s'agit d'une chaîne. 308 00:15:16,550 --> 00:15:18,810 309 00:15:18,810 --> 00:15:20,890 Ensuite, nous allons, et nous allons chercher tous, nous le mettons en rouge. 310 00:15:20,890 --> 00:15:21,964 Cela signifie que nous récupérons tous. 311 00:15:21,964 --> 00:15:26,790 Cela signifie que nous exécutons en fait le SQL déclaration et le remettre en rouge. 312 00:15:26,790 --> 00:15:30,530 Ici, nous faisons la même chose, mais nous faire la même chose pour le jaune. 313 00:15:30,530 --> 00:15:32,490 Et nous allons chercher tous. 314 00:15:32,490 --> 00:15:36,140 >> Et de cette façon, nous évitons l'utilisateur d'être capable d'entrer quelque chose 315 00:15:36,140 --> 00:15:41,710 ce n'est pas ce que nous avons spécifié, une chaîne ou un nombre entier, par exemple. 316 00:15:41,710 --> 00:15:45,100 317 00:15:45,100 --> 00:15:46,610 Je parlais plus tôt compter sur les autres. 318 00:15:46,610 --> 00:15:50,010 Lorsque vous les gars de commencer votre projet, vous êtes plus va certainement utiliser 319 00:15:50,010 --> 00:15:52,310 bootstrap ou quelque chose de semblable. 320 00:15:52,310 --> 00:15:53,490 Avez-vous les gars jamais utilisé Wordpress? 321 00:15:53,490 --> 00:15:57,170 Probablement vous les gars ont utilisé Wordpress plus probable. 322 00:15:57,170 --> 00:16:00,050 Ainsi, le problème avec l'aide les choses d'autres personnes - 323 00:16:00,050 --> 00:16:05,940 Je vais à Google réel rapide Vulnérabilité Wordpress. 324 00:16:05,940 --> 00:16:07,495 >> Si je tire ce droit jusqu'à maintenant - 325 00:16:07,495 --> 00:16:08,995 Je me suis littéralement fait pendant deux secondes Google. 326 00:16:08,995 --> 00:16:12,300 327 00:16:12,300 --> 00:16:13,800 Nous pouvons voir que Wordpress - 328 00:16:13,800 --> 00:16:17,450 ce est datée Septembre '12. 329 00:16:17,450 --> 00:16:19,120 26 est mis à jour. 330 00:16:19,120 --> 00:16:23,620 La configuration par défaut de Wordpress avant 3.6 n'empêche pas les 331 00:16:23,620 --> 00:16:27,110 certains ajouts, qui pourrait faciliter 332 00:16:27,110 --> 00:16:29,790 attaques cross-site scripting. 333 00:16:29,790 --> 00:16:34,530 Donc une histoire rapide, une fois nous travaillions - alors que j'étais, en été, un travail 334 00:16:34,530 --> 00:16:34,970 stage. 335 00:16:34,970 --> 00:16:40,400 Et nous avons travaillé avec sorte de comme une grande compagnie de carte de crédit. 336 00:16:40,400 --> 00:16:42,020 >> Et ils s'appuient sur ce qu'on appelle - 337 00:16:42,020 --> 00:16:45,740 Je ne sais pas si vous avez déjà joué avec un produit appelé Joomla. 338 00:16:45,740 --> 00:16:51,750 Joomla est un produit qui est utilisé pour contrôle - une sorte de semblable à 339 00:16:51,750 --> 00:16:54,340 Wordpress, utilisé pour construire des sites Web. 340 00:16:54,340 --> 00:16:56,060 Donc, ils ont eu leur site travaillant sur Joomla. 341 00:16:56,060 --> 00:16:59,290 Il s'agit en fait d'une carte de crédit société en Colombie. 342 00:16:59,290 --> 00:17:01,000 Je vais vous prendre à leur site très vite. 343 00:17:01,000 --> 00:17:04,550 344 00:17:04,550 --> 00:17:05,400 >> Donc, ils ont utilisé Joomla. 345 00:17:05,400 --> 00:17:08,630 Et ils n'avaient pas mis à jour Joomla à la dernière addition. 346 00:17:08,630 --> 00:17:12,160 Et quand nous avons pris un coup d'oeil leur code, nous avons été en mesure de réellement 347 00:17:12,160 --> 00:17:18,430 aller à l'intérieur de leur code et de voler tous les informations de carte de crédit qu'ils avaient, 348 00:17:18,430 --> 00:17:21,670 tous les numéros de cartes de crédit, les noms, les adresses. 349 00:17:21,670 --> 00:17:22,740 Et ce n'était que - 350 00:17:22,740 --> 00:17:23,569 et leur code était parfaitement bien. 351 00:17:23,569 --> 00:17:24,710 Ils avaient beaucoup de code. 352 00:17:24,710 --> 00:17:25,389 Il était tout sécurité. 353 00:17:25,389 --> 00:17:26,520 Ils ont vérifié toutes les bases de données. 354 00:17:26,520 --> 00:17:29,020 Ils se sont assurés cross-site script était très bien. 355 00:17:29,020 --> 00:17:34,390 >> Mais elles utilisaient quelque chose qui n'était pas mise à jour, ce n'était pas sécurisé. 356 00:17:34,390 --> 00:17:36,940 Et pour que les conduit à - si vous les gars allez certainement utiliser d'autres 357 00:17:36,940 --> 00:17:40,650 code, d'autrui cadres de personnes pour construire votre site Web. 358 00:17:40,650 --> 00:17:43,860 Assurez-vous qu'ils sont en sécurité parce que parfois ce n'est pas vous, celui qui 359 00:17:43,860 --> 00:17:44,480 fait une erreur. 360 00:17:44,480 --> 00:17:47,440 Mais quelqu'un d'autre fait une erreur, et alors vous tombez à cause de cela. 361 00:17:47,440 --> 00:17:51,190 362 00:17:51,190 --> 00:17:53,885 >> Les mots de passe et PII. 363 00:17:53,885 --> 00:17:56,820 Ainsi les mots de passe. 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 Jetons un coup d'œil à des mots de passe très vite. 367 00:18:04,230 --> 00:18:04,590 OK. 368 00:18:04,590 --> 00:18:06,520 S'il vous plaît me dire que tout le monde utilise sécurisé - 369 00:18:06,520 --> 00:18:09,030 J'espère que tout le monde ici utilise des mots de passe sécurisés. 370 00:18:09,030 --> 00:18:12,890 Je ne fais que ce que dans comme une hypothèse. 371 00:18:12,890 --> 00:18:14,850 Alors vous les gars allez certainement stocker les mots de passe pour vos sites Web. 372 00:18:14,850 --> 00:18:17,440 Vous allez faire quelque chose comme une connexion ou quelque chose comme ça. 373 00:18:17,440 --> 00:18:19,610 Ce qui est important est de ne pas stocker les mots de passe en texte clair. 374 00:18:19,610 --> 00:18:20,860 Cela est extrêmement important. 375 00:18:20,860 --> 00:18:23,960 Vous ne voulez pas enregistrer un mot de passe en texte clair. 376 00:18:23,960 --> 00:18:27,370 >> Et vous ne voulez pas vraiment de le stocker dans une table de hachage à sens unique. 377 00:18:27,370 --> 00:18:32,440 Alors qu'est-ce un hachage unidirectionnel est que lorsque vous générer un mot, quand vous mettez ce 378 00:18:32,440 --> 00:18:36,200 mot dans une fonction de hachage, il sera générer dos une sorte de cryptique 379 00:18:36,200 --> 00:18:39,390 message ou ensemble énigmatique de touches. 380 00:18:39,390 --> 00:18:40,640 Je vais vous montrer un exemple. 381 00:18:40,640 --> 00:18:44,620 382 00:18:44,620 --> 00:18:50,250 Je vais hacher ils mot password1. 383 00:18:50,250 --> 00:18:55,280 Donc Hash md5 va me revenir une sorte d'informations bizarre. 384 00:18:55,280 --> 00:18:59,140 >> Le problème est que les gens là-bas qui aiment aller dans les sites Web ont 385 00:18:59,140 --> 00:19:02,750 déjà compris tri de toutes les valeurs de hachage MD5. 386 00:19:02,750 --> 00:19:06,030 Qu'est-ce qu'ils ont fait est qu'ils sont assis sur leur ordinateurs, et ils hachés chaque 387 00:19:06,030 --> 00:19:09,660 seul mot possible là-bas jusqu'à ce que ils se sorte de ce que c'est. 388 00:19:09,660 --> 00:19:11,420 Si je devais chercher cette place - 389 00:19:11,420 --> 00:19:12,420 Je viens attrapé ce hachage. 390 00:19:12,420 --> 00:19:14,120 Si je reçois ce hachage de - 391 00:19:14,120 --> 00:19:17,470 si je vais dans un site Web, et je trouve ce hachage parce que je suis à l' 392 00:19:17,470 --> 00:19:24,100 bases de données, et je regarde vers le haut, quelqu'un déjà pensé à elle pour moi. 393 00:19:24,100 --> 00:19:28,600 394 00:19:28,600 --> 00:19:29,100 >> Ouais. 395 00:19:29,100 --> 00:19:35,030 Alors, les gens se sont assis, et quelle que soit md5 hachage que vous mettez, ils vont 396 00:19:35,030 --> 00:19:37,760 revenir à quelque chose que vous c'est un mot. 397 00:19:37,760 --> 00:19:39,800 Si je hachage un autre mot, comme - 398 00:19:39,800 --> 00:19:42,410 Je ne sais pas - 399 00:19:42,410 --> 00:19:43,490 trees2. 400 00:19:43,490 --> 00:19:46,050 Je ne veux pas être déçu par mes recherches Google. 401 00:19:46,050 --> 00:19:49,820 402 00:19:49,820 --> 00:19:52,780 Ça y est, trees2. 403 00:19:52,780 --> 00:19:55,930 Donc, beaucoup de sites Web toujours utiliser le hachage MD5. 404 00:19:55,930 --> 00:19:57,730 Ils disent, oh, c'est sûr. 405 00:19:57,730 --> 00:19:58,570 Nous ne sommes pas stocker en clair. 406 00:19:58,570 --> 00:19:59,740 Nous avons ce hash md5. 407 00:19:59,740 --> 00:20:01,880 Et tout ce que j'ai à faire est de simplement Google le nombre. 408 00:20:01,880 --> 00:20:03,940 >> Je n'ai même pas à me calculer. 409 00:20:03,940 --> 00:20:06,790 Je peux juste Google il, et quelqu'un déjà fait pour moi. 410 00:20:06,790 --> 00:20:08,010 Voici un tas d'entre eux. 411 00:20:08,010 --> 00:20:09,260 Voici un tas de mots de passe. 412 00:20:09,260 --> 00:20:13,890 413 00:20:13,890 --> 00:20:18,680 Donc, certainement ne pas utiliser le hachage MD5, parce que tout ce que vous avez à 414 00:20:18,680 --> 00:20:19,140 faire est de Google il. 415 00:20:19,140 --> 00:20:20,390 Alors qu'est-ce que vous souhaitez utiliser à la place? 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 Quelque chose qui s'appelle le salage. 419 00:20:31,260 --> 00:20:32,460 Alors, que le salage est - 420 00:20:32,460 --> 00:20:36,280 que vous les gars me souviens quand nous étions parler de hasard dans - 421 00:20:36,280 --> 00:20:37,920 Je ne suis pas sûr de ce que c'était PSet - 422 00:20:37,920 --> 00:20:41,140 était-il PSet il ou quatre? 423 00:20:41,140 --> 00:20:45,150 >> Nous parlions de trouver l'aiguille dans la botte de foin. 424 00:20:45,150 --> 00:20:48,480 Et dans l'ensemble de processeurs, il a dit que vous pouviez fait comprendre ce aléatoire 425 00:20:48,480 --> 00:20:51,840 génère parce que quelqu'un a déjà couru aléatoires un million de fois et seulement 426 00:20:51,840 --> 00:20:53,230 sorte de former ce qu'ils génèrent. 427 00:20:53,230 --> 00:20:55,840 Qu'est-ce que vous voulez faire est mettre dans une entrée. 428 00:20:55,840 --> 00:20:57,130 C'est ce que le salage sorte de est. 429 00:20:57,130 --> 00:21:00,900 Ils ont déjà compris ce salage renvoie pour chaque travail. 430 00:21:00,900 --> 00:21:04,750 >> Alors, que le salage fait est vous mettez dans un sel. 431 00:21:04,750 --> 00:21:06,160 Vous mettez en un mot. 432 00:21:06,160 --> 00:21:09,720 Et il hacher ce mot en fonction sur ce que vous mettez ici. 433 00:21:09,720 --> 00:21:13,570 Donc, si je passe un hachage avec cette phrase, il va hacher 434 00:21:13,570 --> 00:21:17,180 différemment si je hachage password1 avec une peine différente. 435 00:21:17,180 --> 00:21:21,670 Il sorte de lui donne quelque part pour commencer pour le hachage pour commencer. 436 00:21:21,670 --> 00:21:25,970 Il est donc beaucoup plus difficile à calculer, mais vous peut encore calculer, surtout 437 00:21:25,970 --> 00:21:26,830 si vous utilisez une mauvaise sel. 438 00:21:26,830 --> 00:21:29,650 >> Les gens ont déjà également compris sels communs et compris 439 00:21:29,650 --> 00:21:31,500 ce qu'il est. 440 00:21:31,500 --> 00:21:34,980 Sels aléatoires sont beaucoup mieux, mais le meilleur moyen est d'utiliser 441 00:21:34,980 --> 00:21:38,160 quelque chose qui s'appelle la crypte. 442 00:21:38,160 --> 00:21:40,480 Et ce crypte vous permet de ne - si ces fonctions sont 443 00:21:40,480 --> 00:21:41,820 déjà construit pour vous. 444 00:21:41,820 --> 00:21:44,910 Beaucoup de gens oublient que, ou ils oublient de l'utiliser. 445 00:21:44,910 --> 00:21:54,520 Mais si je regarde PHP crypte, de la crypte retourne déjà une chaîne de hachage pour moi. 446 00:21:54,520 --> 00:21:58,790 Et il sels effectivement plusieurs fois et le hache de nombreuses fois. 447 00:21:58,790 --> 00:22:00,070 >> Donc, nous n'avons pas à le faire. 448 00:22:00,070 --> 00:22:04,790 Donc, tout ce que vous avez à faire est envoyer dans la crypte. 449 00:22:04,790 --> 00:22:08,170 Et il va créer un grand hachage sans que vous ayez à vous soucier de sel 450 00:22:08,170 --> 00:22:08,990 ou quoi que ce soit. 451 00:22:08,990 --> 00:22:12,000 Parce que si vous étiez à sel, vous avez de se rappeler ce que vous avez utilisé le sel 452 00:22:12,000 --> 00:22:13,800 parce que sinon, vous ne pouvez pas obtenir votre passe en arrière sans le 453 00:22:13,800 --> 00:22:15,760 sel que vous utilisez. 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 >> Et aussi personnelles identifiables information. 457 00:22:23,150 --> 00:22:26,730 Donc, la sécurité sociale, de carte de crédit - c'est assez évident. 458 00:22:26,730 --> 00:22:31,880 Mais parfois les gens oublient la façon dont il œuvres est, combien d'informations vous faites 459 00:22:31,880 --> 00:22:35,690 réellement besoin de trouver une seule personne? 460 00:22:35,690 --> 00:22:37,740 Quelqu'un a fait une étude sur ce un moyen de revenir. 461 00:22:37,740 --> 00:22:40,870 Et il était comme, si vous avez un nom complet, vous ne pouvez pas trouver 462 00:22:40,870 --> 00:22:41,610 quelqu'un qui facilement. 463 00:22:41,610 --> 00:22:43,900 Mais que faire si vous avez un nom complet et leur date de naissance? 464 00:22:43,900 --> 00:22:47,770 Est-ce suffisant pour identifier quelqu'un en particulier? 465 00:22:47,770 --> 00:22:52,760 >> Que faire si vous avez leur nom et la adresse à laquelle ils vivent? 466 00:22:52,760 --> 00:22:55,110 Est-ce suffisant pour trouver quelqu'un? 467 00:22:55,110 --> 00:23:02,490 Et c'est quand ils remettent en question, ce qui est renseignements personnels identifiables, et 468 00:23:02,490 --> 00:23:05,360 Que devez-vous vous soucier pas loin de donner? 469 00:23:05,360 --> 00:23:08,770 Si vous donnez personnelles identifiables informations que quelqu'un vous donne, 470 00:23:08,770 --> 00:23:11,420 vous pourriez potentiellement être poursuivi. 471 00:23:11,420 --> 00:23:12,610 Et nous ne voulons certainement pas que. 472 00:23:12,610 --> 00:23:14,955 >> Ainsi, lorsque vous mettez votre site , et vous avez un vraiment cool 473 00:23:14,955 --> 00:23:17,230 conception, nous espérons que vous avez fait un projet final impressionnant. 474 00:23:17,230 --> 00:23:18,370 Tout vous voulez sorte de à mettre là-bas. 475 00:23:18,370 --> 00:23:21,420 Vous voulez vous assurer que les vous prenez de l'utilisateur, si c'est 476 00:23:21,420 --> 00:23:25,310 informations personnelles identifiables, vous voulez vous assurer que vous être vraiment 477 00:23:25,310 --> 00:23:26,560 prudent avec lui. 478 00:23:26,560 --> 00:23:29,670 479 00:23:29,670 --> 00:23:31,080 >> Injection Shell. 480 00:23:31,080 --> 00:23:31,350 OK. 481 00:23:31,350 --> 00:23:37,590 Injection Shell permet à l'intrus accéder à votre ligne de commande réelle 482 00:23:37,590 --> 00:23:39,660 dans votre serveur. 483 00:23:39,660 --> 00:23:44,060 Et il est capable d'exécuter du code que vous ne pouvez pas contrôler. 484 00:23:44,060 --> 00:23:49,560 Prenons un exemple de cette belle chaîne ici. 485 00:23:49,560 --> 00:23:55,570 Si nous allons dans le site Web de nouveau, je suis va aller dans l'injection de code. 486 00:23:55,570 --> 00:23:58,910 Donc, ce qu'il fait est - 487 00:23:58,910 --> 00:24:00,420 c'est aussi ce que nous étions regarder avant. 488 00:24:00,420 --> 00:24:11,200 Nous laissons à l'utilisateur de mettre en quelque il veut, et il affichera 489 00:24:11,200 --> 00:24:12,220 ce que vous voulez. 490 00:24:12,220 --> 00:24:13,890 >> Donc, je vais mettre un appel. 491 00:24:13,890 --> 00:24:15,540 Que cela ne soit - 492 00:24:15,540 --> 00:24:16,940 il va commencer par la concaténation. 493 00:24:16,940 --> 00:24:19,520 Donc, il va me laisser courir quelque commander le fonctionnement de la personne 494 00:24:19,520 --> 00:24:21,500 avant et mon commandement. 495 00:24:21,500 --> 00:24:23,980 Et je suis d'exécuter une commande du système. 496 00:24:23,980 --> 00:24:27,310 Et ces dernières sont des cordes - rappelez-vous ce que j'ai dit à vous les gars sur, 497 00:24:27,310 --> 00:24:31,725 alors que vous avez à coder dans un procédé d'URL. 498 00:24:31,725 --> 00:24:35,010 499 00:24:35,010 --> 00:24:36,992 Si je lance ce moment - 500 00:24:36,992 --> 00:24:39,150 Je vais vous montrer ici - 501 00:24:39,150 --> 00:24:41,100 vous verrez que j'ai fini jusqu'à l'exécution d'une commande. 502 00:24:41,100 --> 00:24:45,700 503 00:24:45,700 --> 00:24:49,320 >> C'est en fait le serveur réel que mon site est en cours d'exécution sur. 504 00:24:49,320 --> 00:24:55,840 505 00:24:55,840 --> 00:24:58,510 Donc, nous ne voulons pas que, parce que je peux courir - 506 00:24:58,510 --> 00:25:00,320 ce serveur n'est pas le mien. 507 00:25:00,320 --> 00:25:04,030 Donc, je ne veux pas gâcher son soeur, le serveur de Marcus. 508 00:25:04,030 --> 00:25:07,470 Mais vous pouvez exécuter plusieurs commandes qui sont dangereux. 509 00:25:07,470 --> 00:25:11,885 Et potentiellement, vous pouvez supprimer fichiers, supprimer des répertoires. 510 00:25:11,885 --> 00:25:14,390 511 00:25:14,390 --> 00:25:17,970 Je peux enlever un répertoire si Je voulais, mais je ne veux pas 512 00:25:17,970 --> 00:25:19,530 à faire que de Marcus. 513 00:25:19,530 --> 00:25:20,420 C'est un bon gars. 514 00:25:20,420 --> 00:25:21,470 Il m'a laissé emprunter son serveur. 515 00:25:21,470 --> 00:25:24,620 Je vais donc lui laisser de rabais sur le bon. 516 00:25:24,620 --> 00:25:32,280 >> Donc, ce que nous ne voulons pas utiliser - nous ne faisons pas vouloir utiliser eval ou système. 517 00:25:32,280 --> 00:25:34,755 Eval ou système nous permet de faire ces appels système. 518 00:25:34,755 --> 00:25:37,410 519 00:25:37,410 --> 00:25:38,410 Moyen Eval évaluer. 520 00:25:38,410 --> 00:25:40,790 Signifie système que j'ai couru. 521 00:25:40,790 --> 00:25:42,490 Il est géré quelque chose dans le système. 522 00:25:42,490 --> 00:25:46,730 Mais nous ne pouvons interdire ces choses dans PHP afin que nous ne les utilisons pas. 523 00:25:46,730 --> 00:25:47,400 Et le téléchargement de fichiers. 524 00:25:47,400 --> 00:25:49,180 J'allais faire une impressionnante chose avec le téléchargement du fichier. 525 00:25:49,180 --> 00:25:52,740 Mais comme je vous l'ai dit les gars, mon dossier téléchargement chose ne fonctionne pas. 526 00:25:52,740 --> 00:25:54,590 Si je devais télécharger un fichier en ce moment - 527 00:25:54,590 --> 00:25:57,120 528 00:25:57,120 --> 00:26:00,830 si je devais télécharger un fichier, et c'est une image - 529 00:26:00,830 --> 00:26:03,180 vous avez une chose de téléchargement c'est une image. 530 00:26:03,180 --> 00:26:03,660 C'est très bien. 531 00:26:03,660 --> 00:26:04,280 Rien ne se passe. 532 00:26:04,280 --> 00:26:10,840 >> Mais si vous avez un fichier de téléchargement, pour exemple, et l'utilisateur en fait ajouts 533 00:26:10,840 --> 00:26:19,220 un fichier PHP ou un fichier exe ou quelque chose comme ça, alors vous pourriez potentiellement 534 00:26:19,220 --> 00:26:19,740 avoir un problème. 535 00:26:19,740 --> 00:26:21,390 Cette travaillait avant. 536 00:26:21,390 --> 00:26:25,202 Malheureusement pour moi, c'est ne fonctionne plus. 537 00:26:25,202 --> 00:26:30,230 Si moi, par exemple, télécharger ce fichier, je suis pas obtenir la permission de télécharger 538 00:26:30,230 --> 00:26:33,400 le fichier en raison de la serveur ne pas être le mien. 539 00:26:33,400 --> 00:26:38,670 Alors le gars est vraiment intelligent. 540 00:26:38,670 --> 00:26:39,610 >> Donc, nous ne voulons pas - 541 00:26:39,610 --> 00:26:40,130 Je vais vous montrer les gars - 542 00:26:40,130 --> 00:26:41,840 OK, ce sont des outils vraiment cool. 543 00:26:41,840 --> 00:26:45,100 Il s'agit donc - 544 00:26:45,100 --> 00:26:47,715 aller dans - si vous les gars avez Firefox - j'espère que vous faites. 545 00:26:47,715 --> 00:26:54,260 Il ya deux modules appelés SQL Inject Moi et Cross-Site Script moi. 546 00:26:54,260 --> 00:26:56,870 Ils ouvrent aussi peu côté barres sur le côté. 547 00:26:56,870 --> 00:27:01,480 Et si je devais revenir à CS60 par exemple - 548 00:27:01,480 --> 00:27:04,210 si ce qu'il fait est qu'il semble pour toutes les formes que - 549 00:27:04,210 --> 00:27:07,220 550 00:27:07,220 --> 00:27:08,760 espérons-le, je ne vais pas en difficulté pour cela. 551 00:27:08,760 --> 00:27:09,190 >> Mais OK. 552 00:27:09,190 --> 00:27:12,600 Voici le système d'axe. 553 00:27:12,600 --> 00:27:18,946 Alors, quand je commence à regarder pour les trous dans le système, la première chose que je fais est 554 00:27:18,946 --> 00:27:21,820 ouvrir cette belle petite outil sur le côté. 555 00:27:21,820 --> 00:27:24,160 Et je vais tester formes avec des attaques automatiques. 556 00:27:24,160 --> 00:27:28,510 Et si ce qu'il fait est il va lentement ouvrir un tas de navigateurs. 557 00:27:28,510 --> 00:27:29,930 Voici un tas de navigateurs. 558 00:27:29,930 --> 00:27:33,320 Et il essaie toutes les combinaisons unique de cross-site scripting 559 00:27:33,320 --> 00:27:37,380 qu'il peut dire, si vous voyez sur le côté. 560 00:27:37,380 --> 00:27:42,080 >> Et il va me donner un résultat sorte de ce que la réponse est. 561 00:27:42,080 --> 00:27:42,860 Toutes les passer. 562 00:27:42,860 --> 00:27:43,910 De toute évidence, ils passent tous. 563 00:27:43,910 --> 00:27:46,190 Je veux dire, ils sont vraiment intelligent les gens là-bas. 564 00:27:46,190 --> 00:27:48,010 Mais si je devais courir - 565 00:27:48,010 --> 00:27:52,050 J'ai eu fois avant quand je lance ce sur les projets finaux des étudiants. 566 00:27:52,050 --> 00:27:56,080 Je cours tout simplement SQL Inject Me avec toutes les différentes attaques. 567 00:27:56,080 --> 00:28:00,080 Et il essaie de SQL injection ce serveur de broche. 568 00:28:00,080 --> 00:28:03,590 Donc, si nous faisons défiler vers le bas, pour exemple, il est dit - 569 00:28:03,590 --> 00:28:04,960 ce qui est bon si elle renvoie. 570 00:28:04,960 --> 00:28:08,250 >> Donc, il a testé des certaines valeurs. 571 00:28:08,250 --> 00:28:11,170 Et le serveur a renvoyé une code qui a été négative. 572 00:28:11,170 --> 00:28:11,780 Retirer temporairement. 573 00:28:11,780 --> 00:28:13,030 C'est une bonne chose. 574 00:28:13,030 --> 00:28:17,050 575 00:28:17,050 --> 00:28:20,750 Il essaie tous ces tests. 576 00:28:20,750 --> 00:28:21,790 Ainsi, vous pouvez simplement lancer - 577 00:28:21,790 --> 00:28:27,860 Je souhaite que je pourrais trouver un site réel rapide que cela me laisse - 578 00:28:27,860 --> 00:28:29,110 peut-être le magasin de CS50. 579 00:28:29,110 --> 00:28:43,890 580 00:28:43,890 --> 00:28:45,711 >> Wow, cela va prendre beaucoup trop de temps. 581 00:28:45,711 --> 00:28:53,090 582 00:28:53,090 --> 00:28:55,130 Je vais laisser le premier test pas finir droite. 583 00:28:55,130 --> 00:28:57,330 Il s'agit donc de se plaindre. 584 00:28:57,330 --> 00:28:58,470 Donc, ce sont trois choses. 585 00:28:58,470 --> 00:29:00,430 Ces outils sont gratuits. 586 00:29:00,430 --> 00:29:03,960 Vous pouvez les télécharger et les exécuter sur votre site web, et il vous dira si 587 00:29:03,960 --> 00:29:06,650 vous avez cross-site scripting, si vous avez SQL, si vous avez 588 00:29:06,650 --> 00:29:07,900 quelque chose comme ça. 589 00:29:07,900 --> 00:29:12,230 590 00:29:12,230 --> 00:29:14,500 Je suis une sorte de gâcher. 591 00:29:14,500 --> 00:29:15,550 >> Ce qui est important - 592 00:29:15,550 --> 00:29:17,900 OK, donc ne jamais faire confiance à l'utilisateur. 593 00:29:17,900 --> 00:29:21,920 Quelles que soient les entrées de l'utilisateur pour vous, assurez- Assurez-vous de désinfecter, vous nettoyer, 594 00:29:21,920 --> 00:29:25,300 vous de vérifier les bonnes choses, que c'est vous donner ce que vous 595 00:29:25,300 --> 00:29:28,240 veulent qu'il vous donne. 596 00:29:28,240 --> 00:29:32,460 Toujours être à jour sur ce cadre que vous êtes en train d'utiliser. 597 00:29:32,460 --> 00:29:34,630 Si vous utilisez quelque chose comme bootstrap - 598 00:29:34,630 --> 00:29:36,340 Je sais que vous allez utiliser bootstrap parce qu'il va aller 599 00:29:36,340 --> 00:29:38,140 sur ce bientôt en classe - 600 00:29:38,140 --> 00:29:43,120 et Wordpress ou quelque chose comme ça, normalement cela pourrait être piraté. 601 00:29:43,120 --> 00:29:44,770 >> Et puis, vous ne savez même pas. 602 00:29:44,770 --> 00:29:45,800 Vous êtes juste le fonctionnement de votre site web. 603 00:29:45,800 --> 00:29:47,360 Et c'est totalement sécurisé. 604 00:29:47,360 --> 00:29:51,730 Et vous descendez. 605 00:29:51,730 --> 00:29:54,000 Donc, je pêche très tôt. 606 00:29:54,000 --> 00:29:55,770 Mais je tiens à remercier Pentest Labs. 607 00:29:55,770 --> 00:29:58,140 Je vais vous montrer quelque chose les gars appelé PenTest Labs. 608 00:29:58,140 --> 00:30:05,000 Si vous êtes vraiment intéressé par quelle sécurité est vraiment, il ya un 609 00:30:05,000 --> 00:30:07,300 site Web appelé PenTest Labs si vous les gars aller à ce moment. 610 00:30:07,300 --> 00:30:10,730 Oh, eh bien, ce n'est pas ça. 611 00:30:10,730 --> 00:30:12,030 Je vais courir comme ça. 612 00:30:12,030 --> 00:30:14,400 Google me dit la réponse. 613 00:30:14,400 --> 00:30:16,590 >> OK. 614 00:30:16,590 --> 00:30:19,030 Et il vous apprend utiliser - il dit, apprendre pénétration Web 615 00:30:19,030 --> 00:30:21,060 tester la bonne façon. 616 00:30:21,060 --> 00:30:23,650 Il vous apprend - 617 00:30:23,650 --> 00:30:25,150 espérons-le, vous êtes une personne éthique. 618 00:30:25,150 --> 00:30:29,200 Mais il vous enseigne comment vous pouvez regarder comment vous pouvez obtenir à l'intérieur des sites. 619 00:30:29,200 --> 00:30:31,130 Et si vous apprenez comment vous pouvez obtenir à l'intérieur sites Web, vous pouvez apprendre à 620 00:30:31,130 --> 00:30:34,960 se protéger contre sites à l'intérieur. 621 00:30:34,960 --> 00:30:39,100 Permettez-moi de zoom avant, car peut-être que vous les gars ne cherchent pas à ce droit. 622 00:30:39,100 --> 00:30:46,350 >> De injection SQL à débourser, si sorte de comment je peux obtenir à partir de SQL 623 00:30:46,350 --> 00:30:48,530 injection à débourser. 624 00:30:48,530 --> 00:30:53,890 Et vous téléchargez cette machine virtuelle. 625 00:30:53,890 --> 00:30:55,690 Et la machine virtuelle est déjà avec le site que vous êtes 626 00:30:55,690 --> 00:30:56,780 va essayer. 627 00:30:56,780 --> 00:30:58,030 Vous téléchargez le PDF. 628 00:30:58,030 --> 00:31:03,610 629 00:31:03,610 --> 00:31:08,370 Et il vous montrera ligne par ligne ce vous avez à faire, ce que vous vérifiez. 630 00:31:08,370 --> 00:31:14,560 C'est ce que fait un attaquant fait pénétrer à l'intérieur d'un site web. 631 00:31:14,560 --> 00:31:15,750 >> Et certaines de ces choses est compliqué. 632 00:31:15,750 --> 00:31:17,520 Je souhaite que je pourrais aller sur plus choses avec vous les gars. 633 00:31:17,520 --> 00:31:21,090 Mais je crains que vous les gars n'ont pas vraiment - 634 00:31:21,090 --> 00:31:23,090 c'est ce que je suis allé avec vous les gars, tests web 635 00:31:23,090 --> 00:31:26,830 pour les tests de pénétration. 636 00:31:26,830 --> 00:31:33,540 Je ne sais pas vraiment ce que SQL et ce - 637 00:31:33,540 --> 00:31:35,960 Le séminaire de Carl Jackson est génial aussi. 638 00:31:35,960 --> 00:31:37,360 Les gars, vous ne savez pas de tri de ce que c'est. 639 00:31:37,360 --> 00:31:39,450 Mais si vous allez à ce site, et vous télécharger ces tutoriels et les 640 00:31:39,450 --> 00:31:43,290 PDF, vous pouvez jeter un oeil à type de ce que le domaine de la sécurité fait vraiment 641 00:31:43,290 --> 00:31:46,940 dans des tests de pénétration, voir comment vous pouvez obtenir des sites Web à l'intérieur et à protéger 642 00:31:46,940 --> 00:31:48,020 vous d'elle. 643 00:31:48,020 --> 00:31:56,360 >> Donc, si je fais un aperçu très rapide, il va être éviter cross-site scripting. 644 00:31:56,360 --> 00:32:00,160 Vous souhaitez utiliser htmlspecialchars chaque chronométrer les entrées de l'utilisateur quelque chose. 645 00:32:00,160 --> 00:32:01,580 Empêcher l'injection SQL. 646 00:32:01,580 --> 00:32:04,510 Si vous faites cela, vous êtes déjà mieux que Harvard était 647 00:32:04,510 --> 00:32:06,530 quand ils se sont violées. 648 00:32:06,530 --> 00:32:10,510 Et assurez-vous que vos mots de passe ne sont pas en texte brut. 649 00:32:10,510 --> 00:32:16,220 Assurez-vous que vous n'avez pas une seule façon de hachage eux, mais que vous utilisez crypte, le PHP 650 00:32:16,220 --> 00:32:18,670 fonction que je vous ai montré les gars. 651 00:32:18,670 --> 00:32:20,060 De cette façon, vous devrait être bon. 652 00:32:20,060 --> 00:32:25,830 >> En outre, si vos amis vous permettent, exécutez Me SQL a Injecter sur leurs sites Web. 653 00:32:25,830 --> 00:32:28,140 Exécutez cross-site scripting sur leurs sites Web. 654 00:32:28,140 --> 00:32:33,720 Et vous verrez beaucoup de ces sites avoir une tonne de vulnérabilités. 655 00:32:33,720 --> 00:32:40,400 C'est incroyable à quel point les gens oublient pour assainir leurs bases de données ou de faire 656 00:32:40,400 --> 00:32:46,340 sûr de ce que saisie de la personne n'est pas le code de script. 657 00:32:46,340 --> 00:32:47,200 OK. 658 00:32:47,200 --> 00:32:49,182 J'ai en quelque sorte fini très tôt. 659 00:32:49,182 --> 00:32:56,510 Mais si quelqu'un a des questions sur quoi que ce soit, vous pouvez me tirer une question. 660 00:32:56,510 --> 00:32:56,630 Ouais. 661 00:32:56,630 --> 00:32:56,970 Allez, allez. 662 00:32:56,970 --> 00:32:59,846 >> PUBLIC: Je veux juste demander, pouvez-vous expliquer comment le fichier 663 00:32:59,846 --> 00:33:03,160 télécharger des œuvres exactement. 664 00:33:03,160 --> 00:33:03,480 >> LUCIANO ARANGO: Ouais. 665 00:33:03,480 --> 00:33:06,350 Alors permettez-moi de vous montrer le fichier télécharger très vite. 666 00:33:06,350 --> 00:33:11,300 Ainsi, le téléchargement de fichiers - 667 00:33:11,300 --> 00:33:14,500 le problème wit le téléchargement du fichier C'est en ce moment que - 668 00:33:14,500 --> 00:33:18,541 Je vais ouvrir le code de sorte que vous les gars voir le code dans les coulisses. 669 00:33:18,541 --> 00:33:22,390 670 00:33:22,390 --> 00:33:24,305 Et il est charger. 671 00:33:24,305 --> 00:33:28,030 672 00:33:28,030 --> 00:33:31,560 Voici un code pour le fichier uploader. 673 00:33:31,560 --> 00:33:33,980 >> Nous essayons d'aller dans ce Annuaire ici. 674 00:33:33,980 --> 00:33:37,380 675 00:33:37,380 --> 00:33:44,880 Et nous essayons de, une fois que nous l'entrée fichier, fichier isset - alors quand il ya un 676 00:33:44,880 --> 00:33:50,900 déposer dans des fichiers, cette image, alors nous essayons de le déplacer ici. 677 00:33:50,900 --> 00:33:51,910 Nous récupérons le fichier ici. 678 00:33:51,910 --> 00:33:58,350 La méthode est POST, type, image, fichier. 679 00:33:58,350 --> 00:33:59,630 Et nous envoyons ce fichier. 680 00:33:59,630 --> 00:34:03,910 Et puis une fois que nous recevons il, donc une fois le fichier a une image, nous essayons de les envoyer 681 00:34:03,910 --> 00:34:05,060 à ce répertoire. 682 00:34:05,060 --> 00:34:09,814 >> Le problème est que le site n'est pas me laisser aller à ce répertoire, 683 00:34:09,814 --> 00:34:12,239 parce qu'il ne veut pas que je retourne. 684 00:34:12,239 --> 00:34:13,489 Il ne veut pas que je parte - 685 00:34:13,489 --> 00:34:15,620 686 00:34:15,620 --> 00:34:17,070 Je dois y aller - Alors, voici télécharger. 687 00:34:17,070 --> 00:34:17,639 Voici les images. 688 00:34:17,639 --> 00:34:21,780 Je dois y aller tout le chemin du retour à la début et le mettre là-dedans et puis 689 00:34:21,780 --> 00:34:23,820 aller et de le mettre dans le répertoire. 690 00:34:23,820 --> 00:34:30,000 Donc, si je courais une fenêtre de terminal, et je voulais déplacer un fichier - 691 00:34:30,000 --> 00:34:30,409 [Inaudible] 692 00:34:30,409 --> 00:34:32,159 peut le voir. 693 00:34:32,159 --> 00:34:37,940 Si je voulais déplacer un fichier, j'ai de mettre le nom de fichier, puis le 694 00:34:37,940 --> 00:34:40,860 chemin d'accès complet, je veux l'envoyer à. 695 00:34:40,860 --> 00:34:45,110 >> Et puis le serveur n'est pas laisser moi de revenir. 696 00:34:45,110 --> 00:34:46,929 Et si ce n'est pas de laisser me rendre à ce fichier. 697 00:34:46,929 --> 00:34:47,670 Mais normalement - 698 00:34:47,670 --> 00:34:49,360 donc il ya un code pour Télécharger un fichier. 699 00:34:49,360 --> 00:34:52,260 Donc, normalement, ce qui va arriver, c'est que la personne n'est pas de vérifier si mon dossier 700 00:34:52,260 --> 00:34:57,920 se termine par. jpeg, donc je voudrait vérifier. 701 00:34:57,920 --> 00:35:00,054 Permettez-moi d'ouvrir un exemple bien réel rapide. 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 Cette bonne personne - 705 00:35:09,230 --> 00:35:11,980 si par exemple deux vérifie si preg_match - 706 00:35:11,980 --> 00:35:14,180 ici, il est ici - 707 00:35:14,180 --> 00:35:19,660 pour s'assurer que les extrémités avec PHP, qui est bon. 708 00:35:19,660 --> 00:35:20,580 C'est une bonne chose. 709 00:35:20,580 --> 00:35:22,820 Mais il ya un vrai grand problème avec cela. 710 00:35:22,820 --> 00:35:24,600 C'est une bonne chose. 711 00:35:24,600 --> 00:35:44,190 Mais si je devais mettre un fichier appelé myfavoritepicture.php.jpeg, je pouvais 712 00:35:44,190 --> 00:35:50,060 encore potentiellement se débarrasser de l'jpeg et exécuter it.k que PHP est dangereux. 713 00:35:50,060 --> 00:35:53,850 Vous ne voulez pas que la personne soit en mesure d'exécuter du code sur votre site. 714 00:35:53,850 --> 00:35:55,750 >> Mais alors. Jpeg permet de passer. 715 00:35:55,750 --> 00:36:00,720 L'idée est ce que vous voulez vraiment faire n'est pas prendre les fichiers, A. Mais, OK, ce 716 00:36:00,720 --> 00:36:07,500 vous voulez vraiment faire est de s'assurer que vous lisez dans le monde entier. 717 00:36:07,500 --> 00:36:08,720 Et il n'y a rien. Php en elle. 718 00:36:08,720 --> 00:36:10,500 Il n'y a pas. Php dans le nom de fichier entier. 719 00:36:10,500 --> 00:36:12,780 >> PUBLIC: Mais vous pourriez mettre. jpeg sur la fin. 720 00:36:12,780 --> 00:36:15,830 Les serveurs courent toujours le code. 721 00:36:15,830 --> 00:36:16,870 >> LUCIANO ARANGO: Non, il ne sera pas fonctionner au début. 722 00:36:16,870 --> 00:36:22,310 Vous devez revenir en arrière et essayer de pour voir si vous pouvez - 723 00:36:22,310 --> 00:36:24,210 >> PUBLIC: Nous devons donc - 724 00:36:24,210 --> 00:36:26,020 OK, juste un autre jeu qui implique - 725 00:36:26,020 --> 00:36:26,936 >> LUCIANO ARANGO: Ouais. 726 00:36:26,936 --> 00:36:29,230 >> PUBLIC: OK. 727 00:36:29,230 --> 00:36:31,486 >> LUCIANO ARANGO: Ouais. 728 00:36:31,486 --> 00:36:31,900 OK. 729 00:36:31,900 --> 00:36:32,865 D'autres questions? 730 00:36:32,865 --> 00:36:33,180 OK. 731 00:36:33,180 --> 00:36:37,350 Je vais laisser cela et trier de tenter de voir si vous les gars peuvent - 732 00:36:37,350 --> 00:36:40,490 les autres sont un peu plus compliquée car ils nécessitent beaucoup 733 00:36:40,490 --> 00:36:44,050 plus de connaissances de SQL que la simple commençant la connaissance de la bande et est SQL 734 00:36:44,050 --> 00:36:47,010 de ce qu'est JavaScript. 735 00:36:47,010 --> 00:36:49,730 Mais je vais essayer de garder cette place, et j'espère que vous les gars vont apprendre 736 00:36:49,730 --> 00:36:53,230 à ce sujet et essayer de prendre un coup d'oeil à ce que vous pouvez faire et combien exemples 737 00:36:53,230 --> 00:36:54,420 vous pouvez passer à travers. 738 00:36:54,420 --> 00:36:56,020 >> N'importe qui ont une autre questions à ce sujet? 739 00:36:56,020 --> 00:36:59,387 740 00:36:59,387 --> 00:37:00,350 Allez-y. 741 00:37:00,350 --> 00:37:01,170 Ouais, tirer, tirer. 742 00:37:01,170 --> 00:37:01,580 Oui, allez-y. 743 00:37:01,580 --> 00:37:01,850 Allez-y. 744 00:37:01,850 --> 00:37:02,310 >> PUBLIC: OK. 745 00:37:02,310 --> 00:37:08,870 Donc, j'ai entendu parler de la façon dont les guillemets magiques ne sont pas suffisamment sécurisé. 746 00:37:08,870 --> 00:37:09,280 >> LUCIANO ARANGO: Qu'est - 747 00:37:09,280 --> 00:37:10,110 Les guillemets magiques? 748 00:37:10,110 --> 00:37:10,595 >> PUBLIC: Ouais. 749 00:37:10,595 --> 00:37:15,445 Il ajoute donc - donc chaque fois que vous entrez quelque chose, il ajoute toujours des guillemets. 750 00:37:15,445 --> 00:37:15,930 >> LUCIANO ARANGO: Ouais. 751 00:37:15,930 --> 00:37:16,000 Ouais. 752 00:37:16,000 --> 00:37:16,496 OK. 753 00:37:16,496 --> 00:37:19,113 >> PUBLIC: Et puis j'ai pensé que travaillé, mais alors j'ai cherché en place. 754 00:37:19,113 --> 00:37:21,648 Et il a dit qu'il n'est pas bon. 755 00:37:21,648 --> 00:37:23,050 Mais je ne sais pas pourquoi. 756 00:37:23,050 --> 00:37:23,360 >> LUCIANO ARANGO: Ouais. 757 00:37:23,360 --> 00:37:26,240 >> PUBLIC: Ne pas utiliser les guillemets magiques, parce qu'il n'est pas sûr. 758 00:37:26,240 --> 00:37:26,360 >> LUCIANO ARANGO: OK. 759 00:37:26,360 --> 00:37:31,735 Citations Donc magie, c'est quand vous insérez SQL et il ajoute déjà la citation pour vous. 760 00:37:31,735 --> 00:37:33,520 >> PUBLIC: Il ajoute toujours des citations autour de ce que vous mettez dedans 761 00:37:33,520 --> 00:37:34,210 >> LUCIANO ARANGO: Ouais. 762 00:37:34,210 --> 00:37:37,190 Ainsi, le problème, c'est que - 763 00:37:37,190 --> 00:37:38,445 Je vais jeter un oeil à - 764 00:37:38,445 --> 00:37:41,390 >> PUBLIC: Comment ça acquérir l'instruction SQL? 765 00:37:41,390 --> 00:37:44,690 Ou je suppose que cela pourrait être comme citation sélectionnez. 766 00:37:44,690 --> 00:37:49,030 >> LUCIANO ARANGO: Ouais, vous avez besoin bonnes citations pour le SQL. 767 00:37:49,030 --> 00:37:52,900 >> PUBLIC: Non, mais le serveur le fait pour vous. 768 00:37:52,900 --> 00:37:54,460 >> LUCIANO ARANGO: Ces petites citations ici, ces petites citations? 769 00:37:54,460 --> 00:37:55,670 >> PUBLIC: Ouais. 770 00:37:55,670 --> 00:37:56,450 >> LUCIANO ARANGO: Ouais. 771 00:37:56,450 --> 00:37:59,860 Le problème est que vous pouvez commenter le dernier - 772 00:37:59,860 --> 00:38:05,770 OK, donc ce que je peux faire, c'est que je peux commenter Départ - nous allons donc jeter un oeil à - permettez-moi de 773 00:38:05,770 --> 00:38:07,920 ouvrir un fichier d'édition de texte. 774 00:38:07,920 --> 00:38:09,610 Permettez-moi de modifier cette ici directement. 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 Pouvez-vous les gars voir que clairement? 778 00:38:23,710 --> 00:38:29,730 Qu'est-ce que je peux faire, c'est que je peux commenter sur le dernier. 779 00:38:29,730 --> 00:38:32,190 Cela commenter la dernière. 780 00:38:32,190 --> 00:38:36,760 Et puis je vais mettre un ici, mettre tous les trucs malveillants ici. 781 00:38:36,760 --> 00:38:39,840 782 00:38:39,840 --> 00:38:42,630 >> Ainsi, l'utilisateur est en fait entrée, à droite? 783 00:38:42,630 --> 00:38:45,230 L'utilisateur n'est pas saisie les choses, non? 784 00:38:45,230 --> 00:38:47,430 C'est ce que je vais à l'entrée en la personne qui tente de pénétrer à l'intérieur. 785 00:38:47,430 --> 00:38:49,430 Je vais mettre en - 786 00:38:49,430 --> 00:38:59,290 787 00:38:59,290 --> 00:39:00,180 c'est un guillemet. 788 00:39:00,180 --> 00:39:01,760 C'est juste ondulée par erreur. 789 00:39:01,760 --> 00:39:15,080 790 00:39:15,080 --> 00:39:19,400 Et puis ce que le code va faire - 791 00:39:19,400 --> 00:39:20,190 désolé, je vais prendre ça. 792 00:39:20,190 --> 00:39:22,170 Qu'est-ce que le code va faire est il va ajouter de la première 793 00:39:22,170 --> 00:39:24,030 guillemets ici. 794 00:39:24,030 --> 00:39:26,040 Et il va ajouter de la dernière guillemet ainsi. 795 00:39:26,040 --> 00:39:29,350 796 00:39:29,350 --> 00:39:33,270 >> Et il va aussi ajouter la Enfin, dernier guillemet. 797 00:39:33,270 --> 00:39:37,380 Mais je suis en commentant les devis marque, de sorte qu'ils ne fonctionnent pas. 798 00:39:37,380 --> 00:39:41,440 Et je termine cette citation marquer ici. 799 00:39:41,440 --> 00:39:42,290 Comprenez-vous? 800 00:39:42,290 --> 00:39:43,750 Vous êtes perdu? 801 00:39:43,750 --> 00:39:45,880 Je ne peux commenter la dernière cotation marque, et de prendre soin de la 802 00:39:45,880 --> 00:39:46,680 premier guillemet. 803 00:39:46,680 --> 00:39:47,350 >> PUBLIC: Et juste fini la première. 804 00:39:47,350 --> 00:39:47,480 >> LUCIANO ARANGO: Ouais. 805 00:39:47,480 --> 00:39:48,400 Et juste finir le premier. 806 00:39:48,400 --> 00:39:48,790 Ouais, c'est vrai. 807 00:39:48,790 --> 00:39:50,800 C'est ce que je peux faire. 808 00:39:50,800 --> 00:39:51,890 Ouais. 809 00:39:51,890 --> 00:39:52,980 D'autres questions de ce genre? 810 00:39:52,980 --> 00:39:54,230 C'est une grande question. 811 00:39:54,230 --> 00:39:56,960 812 00:39:56,960 --> 00:39:59,790 Non, oui, peut-être. 813 00:39:59,790 --> 00:40:06,150 Espérons que vous les gars sorte de faire plus de sens quand vous étudiez et SQL 814 00:40:06,150 --> 00:40:06,650 des choses comme ça. 815 00:40:06,650 --> 00:40:07,980 Mais assurez-vous - 816 00:40:07,980 --> 00:40:10,340 garder ces outils dans la montre. 817 00:40:10,340 --> 00:40:12,760 Désolé, ces outils plus ici. 818 00:40:12,760 --> 00:40:14,200 Ces outils sont grands. 819 00:40:14,200 --> 00:40:17,190 Si quelqu'un a des questions, vous pouvez également m'envoyer un email. 820 00:40:17,190 --> 00:40:19,020 C'est mon email normal. 821 00:40:19,020 --> 00:40:25,015 Et c'est mon travail e-mail, qui c'est quand je travaille au MERS. 822 00:40:25,015 --> 00:40:26,040 >> OK, merci. 823 00:40:26,040 --> 00:40:26,740 Merci, les gars. 824 00:40:26,740 --> 00:40:27,860 Vous êtes bon pour aller. 825 00:40:27,860 --> 00:40:28,830 Vous n'avez pas à rester ici. 826 00:40:28,830 --> 00:40:29,570 Ne pas applaudir. 827 00:40:29,570 --> 00:40:30,170 C'est bizarre. 828 00:40:30,170 --> 00:40:31,420 OK, merci, les gars. 829 00:40:31,420 --> 00:40:32,320