>> LUCIANO ARANGO：好吧，伙计们。
我的名字是卢西亚诺阿朗戈。
我在斯楼二年级学生。
而我们将要谈论 网络安全主动防御。
所以，我对信息化工作办公室 安全海域。
而在今年夏天，我在实习 SeguraTec，这是一个信息
那保安服务公司 哥伦比亚的银行。
这主要是在那里我学到 我已经学会为止。
>> 等等一些，我们是材料的 今天要去走了过来，我们都没有
真正在课堂上讲过。
但是我们会很快。
这将是像SQL，JavaScript的。
我们并没有真的走了它。
所以我可以排序的飞行，通过它， 你可能不知道的一些事情。
但很快，你就会了解它。
它会全部意义。
同时另一件事 -
保持道德。
一些你学习的东西，你 以非道德的方式可以使用。
>> 如果它是你的，一定要尝试。
我绝对激励你们 试试自己的服务器，尝试
打算在他们里面。
看看你是否能穿透它们， 如果你能得到他们里面。
但不是任何人的。
警察真的不喜欢这个笑话和 整体而言，我们把这个在这里。
我们在乱搞。
他们得到真的生气了。
>> 所以头部到这个网站。
我把它开在这里。
这是一个网站，并且它 有一堆的例子。
什么情况是，第一个例子 排序将是一个容易得多
不是在一个意义上的最后一个例子 与第一实施例
完全是不安全的。
，最后一个是有点什么 正常的网络安全的人会做。
但你仍然可以排序 为避开这一点。
而且我们要集中在一 和2，实例1和2。
>> 确定。
让我们从跨站点脚本。
JavaScript的运行在 客户端浏览器。
这是您使用的编程语言 在客户端的浏览器，以便运行
你不必更新网站 并返回到服务器。
你有它运行。
例如，Facebook的，你没有 重新载入网页的新状态
更新上来。
它使用JavaScript来生成 所有这些事情。
因此，我们可以注入恶意JavaScript 进入网站。
而这样一来，当我们发送一个链接 一个人，我们可以排序与发送
一些我们想要的代码。
>> 有持久性和非持久性 JavaScript的 -
持久性和非持久性的跨站点 脚本，我的意思。
和不同之处在于持久性 是的JavaScript，这将是
保存在网站上。
和非持久性将是JavaScript的 这实际上将只发生一次。
因此，让我们来看一个例子 真正的快。
>> 确定。
所以这个网站，简单， 什么也没有发生在这里。
我们要去尝试 插入一些JavaScript。
所以我们开始编写JavaScript的方式 是我们先从开始脚本。
我们关闭它与脚本。
我们只是打算把一个消息 -
我会告诉你 -
警报。
警报是一个函数，JavaScript的 用来显示一些东西。
所以让我们尝试一下真正的快。
我要去，警示打招呼。
嗯，我忘了说 -
确定。
所以这是简单的。
>> 我们把JavaScript的一个网站上， 它走了过来。
排序的，它只会发生 我们的网站上，对不对？
所以，现在看来似乎不是 有问题，对不对？
我的意思是，你怎么可以用 这个恶意？
这样的方式，做黑客 这是非常简单的。
他们会抓住它。
他们可以发送此链接给您。
如果我此链接发送到您的权利， 你打开它，它要
说，你好，说我的网站 告诉你打招呼。
>> 所以如果我是说一个东西 点点聪明，如果我拉起了
JavaScript函数I类 已经写了 -
但如果你看一下吧，我会去 在它之前，我写的。
所以我们要设置超时。
我们要等待 几秒钟。
事实上，我们要等待，如果 我没有记错，五秒钟。
这正好以毫秒为单位。
然后我们要做的是我们 要提醒的登录
超时重新登录。
而且我们要改变位置 到不同的位置。
>> 所以，如果我把这个网站给某人， 他们将是
浏览周围，平静。
什么也没有发生。
而在五秒钟内，它会 说，你的登录超时。
请重新登录。
一旦他们点击OK，我要 带他们到另一个网站。
据推测，该网站的将 类似于该网站
他们在之前。
而他们要记录他们 凭据到我的网站，而不是
他们的网站。
>> 所以我可以送一个人 用电子邮件发送此链接。
我说，哦，这里有一个链接。
这是一家银行，例如。
我说，在这里，走这条链路上。
而一旦他们送了，他们是 将要浏览周围。
我可以持续15秒，20秒等， 然后弹出了，请重新登录
重新登录上。
你们可以试试 很多更多的东西。
这是复杂的，因为你们 没见过JavaScript，因此你可能会
不知道某些功能。
但是，所有你需要做的就是启动 与脚本，结束与脚本。
而你可以把任何东西 在中间。
>> 警报是一个函数，等待。
窗口的位置需要你 到一个新的位置。
但你可以做这么多。
而这样的想法是， 我们采取这一关。
如果我去的例子两个，我 把这个相同的代码，它的
行不通的。
所以它打印出来的一切，因为 这是什么原网站
确实是，如果我把东西在这里， 它会打印出来就在这里。
所以它不是打印出来东西。
这个例子实际上是检查 看是否脚本是存在的。
所以是的，请便。
问我。
>> 观众：是不是发送 一个GET或POST请求？
>> LUCIANO ARANGO：是啊。他们是 发送一个GET请求。
>> 观众：这是什么？
>> LUCIANO ARANGO：是啊。
另外浏览器使用post请求。
但我试图展现的GET请求 这样我们就可以看到什么是
其实已在进行之中。
所以，如果我们看看这段代码 - 所以它不工作了。
如果我们来看看这段代码， 这将是例如两个。
这是什么人在做，人 负责该浏览器 -
开拓，确定 -
被替换单词的脚本。
这是PHP，这你们可能 已经看到了一点点呢。
>> 他只是更换 文字脚本的名称。
所以，但是，如果我继续前进 而只是把 -
如果我再抢我的代码，我要去 修改它只是一点点。
相反剧本，我要改变 它的脚本资本R.和
我们要看看这个代码的工作。
所以也没把它打印出来， 这是一个好兆头。
并希望在两秒钟， 它会弹出。
>> 您的登录超时。
确定。
没关系。
因此，检查脚本可能 不一定工作。
的人 -
它也可以检查脚本大写， 脚本小写，海峡案
比较，确定它们是相同的。
但黑客仍然可以做那种什么 我们的V @ genere没有当我们搬到
背几个字符， 前进。
它可以计算出如何把脚本 早在那里，因此它可以注入
该脚本。
>> 所以，你想用什么 是用htmlspecialchars到
保护您的网站。
而这样做的是它使 请确保您所投入 -
例如，报价或本 大于或小于 -
被替换的东西 这并不符合 -
让我放大在这里 -
实际的符号。
它将取代那些特殊的HTML 字符，我们可以看到，当我们
说起 -
哦，这是要带我回 -
这些字符就在这里。
>> 这意味什么 即将到来。
对于HTML，该支架开始 告诉我们什么
HTML相关的来临。
我们要摆脱这一点。
我们不希望把HTML到一个 website.k我们不希望用户是
能放东西在自己的网站 这会影响他们的网站，像
脚本或HTML之类的东西。
最重要的是，你 消毒的用户输入。
>> 因此，用户可以输入很多事情。
他可以输入一堆东西试试 欺骗你的浏览器仍然成
运行此脚本代码。
你想要做的是不只是看 对于脚本，但看的一切
这可能是恶意的。
并用htmlspecialchars会做 为你，所以你不必
为此担心。
但不要试图做自己 那种与自己的代码。
是每个人都清楚的XSS？
>> 确定。
让我们去SQL注入。
因此，SQL注入是可能的 头号漏洞
在不同的网站。
我的意思是，一个很好的例子 -
我只是最远的研究 对于这件事情。
而且我发现这真棒的文章，其中 我看到哈佛的违反，
遭到黑客攻击。
我想知道，好了， 他们会怎么做呢？
哈佛是最真棒，最 确保大学如初。
对不对？
好了，违反了服务器， 黑客使用
技术，称为SQL注入。
>> 所以，这种情况在日常的基础。
人们忘记考虑到 SQL注入。
哈佛一样。
我认为这里说的，普林斯顿， 斯坦福大学，康奈尔大学。
那么，我们如何 - 究竟什么是这个SQL 注射是将所有这些
人们失望？
确定。
因此，SQL是一种编程语言， 我们使用它来访问数据库。
我们做的是我们选择 -
所以这是什么读，现在是选择 一切从表中。
>> SQL，它改变成这些数据库 有充分的表信息。
因此，从用户选择的一切 其中名称是用户名。
对不对？
够简单。
SQL注入的想法是，我们 插入一些恶意代码，将
欺骗服务器到运行的东西 比什么不同
最初运行。
所以我们说的用户名， 我们把在1或等于1。
所以，我们把1或等于1。
它现在将读取的方式将选择 从用户，一切从
用户 - 这就是一切 -
其中name是用户名，但 用户名是1或等于1。
>> 这样的名字是什么，或1等于1。
1等于1始终是真实的。
因此，这将始终返回信息 从用户。
确定。
我们并不需要有 正确的用户名。
我们只要有什么是我们想要的， 并且它会返回信息
我们所需要的。
让我们来看看另一个例子。
>> 如果我们从用户选择的一切， 其中name是DROP TABLE用户 -
所以你觉得这会 做，如果我把用户名
作为DROP TABLE用户？
任何人有一个想法？
是。
>> 观众：它会告诉 它倾倒的所有表。
>> LUCIANO ARANGO：这将告诉我们 倾倒一切都在网站上，
一切在数据库中。
和人用这个东西的 - 所以 我要告诉你的家伙。
我禁用删除表 因为我不想让你
你们砸我的表。
让我们来看看这个。
因此，这只是拉起信息 某一个人。
那么，我们如何知道这是 受到SQL注入攻击。
我们将检查真正的快 如果我们可以把东西 -
让我复制此代码。
我会去在它的第二个。
我打算把根和1等于1。
>> 这一权利在这里，这 百分号23 -
它到底是什么，如果我 在这里看 -
HTML需要在数量上，如果你的方式 看看当我把在一个空间
在这里 - 如果我空间的东西 在这里，它改变它的百分之2。
难道你们看到这个就在这里 当我把在一个空间？
它的工作方式是，你不仅可以 通过HTML发送ASCII值。
所以它取代，例如 有20％的空间。
我不知道，如果你们 之前已经看到这一点。
>> 它用23％的一个包括hashtag。
我们需要一个包括hashtag在年底或 语句，这样，我们就可以告诉
数据库忘了注释掉 这最后的分号结尾。
我们希望它不会想到这一点。
我们只是希望它运行一切 我们有事先和
评论说出来。
让我们来看看它。
>> 所以，如果我把东西错了 - 比方说，例如，我把2等于
1，它不给我任何东西。
当我把1等于1，而且它 返回的东西，这告诉我，
这是易受 SQL注入。
我现在知道，无论 我把这个后 -
并且例如，删除表 或者类似的东西
肯定会的工作。
我知道这是容易受到SQL注入 因为我知道，
引擎盖下，它让 我做了1等于1的事情。
好不好？
>> 如果我们看看这些其他的， 排名第二和第三位，它的
会做多一点点 的检查下面的
引擎盖的它是什么。
因此，任何使降 任何事情或试过吗？
那种做你们得到的SQL吗？
因为我知道你们有没有 看到它，所以它是一种
为迷惑你们。
让我们一起来看看。
那么什么是防止SQLI的方式吗？
确定。
所以这是非常重要的，因为你 你们一定要防止
这在你的网站上。
>> 如果没有，你所有的朋友去 取笑你，当他们放弃所有
你的表。
这样的想法是，你修复SQL 以某种方式，而你匹配
何用户输入与 一个特定的字符串。
所以这种工作方式是你 准备数据库。
您选择的名称，颜色，和卡路里 从数据库中称为水果。
然后，其中的热量小于， 我们把一个问号出现
说我们要输入 东西在一秒钟。
>> 与色彩等于，我们提出了一个问题 马克说，我们要
在第二个输入的东西为好。
好不好？
然后我们执行它，把 在150和红色。
这将检查以 确保这两个 -
这个数组将检查这些 2顷的整数和
这是一个字符串。
然后，我们去了，我们取 总之，我们把它放在红色。
这意味着我们获取所有。
这意味着我们实际上执行的SQL 声明并把它放回红色。
在这里，我们这样做，但我们 为黄色这样做。
我们获取所有。
>> 并且以这种方式，我们防止了用户 从能够输入的东西
这不是我们指定的内容，一个字符串 或一个整数，例如。
我在前面谈到 依靠别人。
当你们开始你的项目，你 最绝的要使用
引导或类似的东西。
有你们曾经使用WordPress的？
也许你们已经用 WordPress的可能性最大。
因此，与使用问题 别人的东西 -
我只是去谷歌真正的快 WordPress的漏洞。
>> 如果我把这了现在 -
我真的做了两秒钟的谷歌。
我们可以看到，WordPress的 -
此日为九月份'12。
26被更新。
WordPress的默认配置 3.6之前并不妨碍这些
一定的上传，这可能 使它更容​​易为
跨站点脚本攻击。
因此，一个快速的故事，一旦我们的工作 有 - 所以我在夏天，一个工作
实习。
并且我们与排序工作 就像一个大的信用卡公司。
>> 他们依靠一种叫做 -
我不知道，如果你们曾经玩过 与所谓的Joomla产物。
joomla的是，用于一个产品 控制 - 几分相似，
WordPress的，用于构建网站。
因此，他们有他们的网站 工作的Joomla。
这实际上是一个信用卡 公司在哥伦比亚。
我会带你到他们的 网站真正的快。
>> 因此，他们使用的Joomla。
而且他们还没有更新的Joomla 最新加入。
所以，当我们采取一看 他们的代码，我们能够真正
往里走自己的代码，窃取所有 信用卡信息，他们有，
所有的信用卡号码， 的名称，地址。
而这只是 -
和他们的代码是完美的罚款。
他们有伟大的代码。
这是所有的安全性。
他们检查所有的数据库。
他们确保跨站点 脚本的罚款。
>> 但他们使用的东西，这不是 更新，这不是安全的。
所以，导致他们 - 所以你们 肯定会使用其他
别人的代码，别人的框架 建立您的网站。
确保他们是安全的，因为 有时它不是你，就是那个
差池。
但别人犯错，而 那么你会因为那下来。
>> 密码和PII。
这样的密码。
确定。
让我们来看看密码 真正的快。
确定。
请告诉我，每个人都 使用安全 -
我在这里希望大家 使用安全的密码。
我只是让那 在作为一个假设。
所以，你们肯定会 存储密码为您的网站。
你会做类似的东西 登录或类似的东西。
最重要的是不存储 密码以纯文本格式。
这是非常重要的。
你不想来存储 密码以纯文本格式。
>> 而你绝对不会真的想 将其存储在一个单向散列。
所以，单向散列是什么，当你 产生一个字，当你把这个
字到一个散列函数，它会 回产生某种神秘
消息或神秘的组键。
我会告诉你一个例​​子。
我要他们凑字密码1。
因此MD5哈希是要返回我 某种奇怪的信息。
>> 问题是，人在那里 那想进入的网站有
已经想通了排序 所有的MD5哈希值。
他们做了什么时，他们就坐在自己的 计算机，而且它们每一个散列
一个可能的话在那里，直到 他们得到了某种这是什么。
如果我要看看这件事 -
我只是抓住这个散列。
如果我得到这个哈希从 -
如果我去到一个网站，我觉得 这个散列，因为我得到的
数据库，我看看它，有人 已经想通了我。
>> 是啊。
于是人们坐下来，无论MD5 那你把哈希，他们将
回到你的东西 那是一个字。
如果我再凑字，像 -
我不知道 -
trees2。
我不想失望 我的谷歌搜索。
就在那儿，trees2。
所以很多网站 仍然使用MD5哈希值。
他们说，哦，它是安全的。
我们不是存储在纯文本。
我们有这样的MD5哈希值。
和所有我需要做的仅仅是 谷歌的数目。
>> 我什至没有计算自己。
我可以Google一下，有人 已经做到了我。
这里有一帮他们。
这里有一堆密码。
所以，绝对不要使用MD5哈希， 因为所有你必须
做的是谷歌吧。
那么你要使用呢？
确定。
一种叫做盐析。
那么，什么是盐析 -
做你们还记得我们 谈论随机的 -
我不知道是什么PSET它是 -
被它PSET有四个？
>> 我们都在谈论寻找 在大海捞针。
而在pset中，它说，你可以 其实弄清随机
产生是因为有人的已经跑了 随机一百万次，只
排序形成他们所产生。
你想要做的是什么 把一个输入端。
所以这是那种什么是盐析。
他们已经想通了，盐析 返回每个工作。
>> 那么，什么盐析作用是 你把盐。
你把某个词。
它会出现乱码这个词根据 看你摆在这里。
所以，如果我凑这个密码1 一句话，它要散列
如果我不同的散列密码1 用不同的句子。
排序它给它的地方，以 开始的开始的散列。
所以这是一个很大很难计算，但你 还可以计算的，尤其是
如果你使用一个糟糕的盐。
>> 人们已经也想通了 常见的盐和想通了
那是什么它是。
随机盐要好得多， 但是最好的方法是使用
一些所谓的地穴。
并允许您地穴什么 不 - 所以这些功能都
已建成的为您服务。
很多人忘记了，或 他们忘记使用它。
但是，如果我仰望地穴PHP，隐窝 已经返回一个哈希字符串我。
它实际上它形成的盐多次 和散列它很多次。
>> 所以，我们没有做到这一点。
因此，所有你需要做的是 它送入墓穴。
它会创建一个伟大的散列无 你不必担心盐
或任何东西。
因为如果你要盐它，你必须 记住什么盐你使用
因为如果不是，你不能让你的 密码不回来了
您使用的盐。
确定。
>> 也可识别个人身分 信息。
所以，社会保障，信用卡 - 这是很明显的。
但有时人们忘记了它的方式 作品是，有多少信息你
确实需要找到一些一个人呢？
有人做了一个关于研究 这样的方式回来。
和它是一样，如果你有 全名，你无法找到
一个人，很容易。
但是，如果你有一个全名 和出生日期？
是足以识别 有人专门？
>> 如果你有他们的名字和 街道地址，他们生活呢？
这就够了，找人？
并且，当他们问的是什么 个人身份信息，并
你该担心 不放弃？
如果你放弃个人识别 信息有人给你，
你可能会被起诉。
我们绝对不希望出现这种情况。
>> 所以，当你把你的网站 出来，和你有一个很酷的
设计，希望你做 真棒的最终项目。
任何形式的想要 把它在那里。
你要确保，无论 你是从用户接受，如果它是
个人身份信息，您 要确保你是真的
小心。
>> 外壳注塑。
确定。
壳牌注入允许入侵者 访问您的实际的命令行
在你的服务器上。
所以他能够运行，代码 你无法控制。
让我们以这样的一个例子 美丽的字符串就在这里。
如果我们进入该网站再次，我 要进入代码注入。
那么，这样做的是 -
它亦是我们 看着面前。
我们让用户放在什么 他希望，它会打印出
任何你想要的。
>> 所以我打算把一个呼叫。
这样做是什么 -
它会通过连接开始。
因此，这将让我跑什么 指挥人的跑步
之前和我的命令。
而我运行一个系统命令。
而这最后的字符串 - 还记得 我跟你们一下，
而你必须编码 以URL的方法。
如果我运行这个现在 -
我会告诉你在这里 -
你会看到，我结束 向上运行的命令。
>> 其实，这是实际的服务器 我的网站上运行。
所以我们不希望出现这种情况， 因为我可以运行 -
这台服务器是不是我的。
所以，我不想搞砸了他的 姐姐，马库斯的服务器。
但你可以运行多个命令 这是危险的。
和潜在的，你可以删除 文件，删除目录。
我可以删除某个目录，如果 我想，但我不希望
要做到这一点马库斯。
他是一个好人。
他让我借用他的服务器。
所以我打算让他 关上的好。
>> 所以，我们不希望使用 - 我们不 要使用eval或系统。
EVAL或系统使我们能够 使这些系统调用。
EVAL评估手段。
系统意味着什么我跑了。
它运行在什么系统。
但是，我们可以在取缔这些东西 PHP，所以我们不使用它们。
和文件上传。
我打算做一个真棒 与文件上传的东西。
但就像我告诉你们，我的档案 上传的东西是行不通的。
如果我要上传的文件，现在 -
如果我是要上传的文件， 这是一个图片 -
你有一个上传的东西 这是一个图片。
这很好。
什么也没有发生。
>> 但如果你有一个上传文件， 例如，与用户实际上传
一个PHP文件或exe文件或东西 这样，那么你可以潜在地
有一个问题。
这是工作之前。
不幸的是我，这是 不工作了。
如果我举个例子，上载这个文件，我 没有得到上传权限
由于服务器上的文件 并非我的。
所以，这个家伙很聪明。
>> 所以我们不希望 -
我要告诉你们 -
好了，这些都是一些非常酷的工具。
所以这些 -
进入 - 如果你们有火狐 - 希望你做的。
有2个附加组件称为SQL注入 我和跨站脚本我。
他们打开了尽可能少的一侧 酒吧就在身边。
如果我是去 CS60例如 -
所以它的作用是它的外观 所有形式的 -
希望，我不会得到 在为此烦恼。
>> 但确定。
这里的针系统。
所以当我开始寻找在孔 系统，我做的第一件事是
打开这个美丽的小 工具就在身边。
而我将要测试的形式 与自动攻击。
还等什么这样做是会慢慢 开了一堆的浏览器。
这里有一堆的浏览器。
并且它试图每一个组合 跨站点脚本
有可能的是，如果 你就在旁边看。
>> 它会给我一个结果 排序的答案是什么。
全部通过。
很显然，他们都通过。
我的意思是，他们真的很聪明 人们在那里。
但如果我要运行 -
我当我运行这个之前已经有次 对学生的最终项目。
我只是运行SQL注入与我 所有不同的攻击。
和它的尝试SQL注入 该引脚服务器。
因此，如果我们向下滚动，对于 例如，它说 -
这是一件好事，如果它返回。
>> 因此，它测试了一些特定的值。
而服务器返回一个 代码为阴性。
除去暂时的。
这是好事。
它会尝试所有这些测试。
所以，你可以简单地运行 -
我希望我能找到一个真正的网站 快速，将让我 -
也许CS50店。
>> 哇，这是要 采取的方式太长。
我会让第一次测试 无法完成正确的。
所以它的抱怨。
所以这三样东西。
这些工具都是免费的。
您可以下载并运行它们对 你的网站，它会告诉你，如果
你有跨站点脚本， 如果您有SQL，如果你有
的东西等。
那种我搞乱了。
>> 什么是重要的 -
好了，永远不要相信用户。
无论用户输入到你，让 一定要消毒，你清洁，
您检查正确的事情， 那它给你什么你
要他给你。
始终更新在什么框架 那你实际使用。
如果你使用类似的自举 -
我知道你们将要使用 引导，因为他要去
在这个即将在课堂 -
和Wordpress或类似的东西， 通常这会被黑客攻破。
>> 然后，你甚至不知道。
你只是运行你的网站。
而且它是完全安全的。
和你去。
所以我真的钓早。
但我要感谢Pentest实验室。
我要告诉你们的东西 所谓Pentest实验室。
如果你们是真正感兴趣 什么样的安全真的是，有一个
网站名为如果Pentest实验室 你们去了现在。
哦，好吧，这不是它。
我只是要像这样运行。
谷歌告诉我答案。
>> 确定。
它教你使用 - 因此，它 说，学习网络渗透
测试的正确方法。
它教你 -
希望，你是一个道德的人。
但它教你如何看 你如何能得到内部网站。
如果你了解如何可以进去 网站，你可以学习如何
保护自己免受越来越 内部网站。
让我放大，因为也许你们 不看这个权利。
>> 从SQL注入到外壳，使 排序如何，我可以从SQL得到
注入壳。
和您下载此虚拟机。
和虚拟机已经自带 与你的网站
去试试。
您下载此PDF。
它会告诉你逐行什么 你所要做的，你检查一下。
其实，这是什么攻击 的确，以获得一个网站里面。
>> 而且其中的一些东西是复杂的。
我希望我能去超多 事情与你们。
但我担心你们 有没有真正 -
这是我走过去与 你们这些家伙，Web测试
对于渗透测试。
真的不知道是什么 SQL是什么 -
卡尔·杰克逊的研讨会 是真棒也是如此。
你们不知道排序 的这是什么。
但是如果你去这个网站，你 下载这些教程和这些
PDF文件，你可以看一看排序 有什么安全方面确实
在渗透测试，看你如何能 进去网站和保护
自己从它。
>> 所以，如果我做一个超快速浏览， 它会防止跨站点脚本。
要使用用htmlspecialchars每 一次用户输入的东西。
防止SQL注入。
如果你这样做，你已经 过得比哈佛是
当他们得到了突破。
并确保您的密码 是不是纯文本。
确保你不会只有一个单向散列 他们，但您使用的crypt，PHP的
功能，我给你们。
这样一来，你应该是好的。
>> 此外，如果你的朋友告诉你，运行 SQL注入我自己的网站上。
执行跨站点脚本 在他们的网站。
你会看到很多这样的网站 有一吨的漏洞。
这是令人难以置信多少人忘记了如何 来净化自己的数据库或使
知道什么是人的输入 是不是脚本代码。
确定。
那种我真的结束早。
但是，如果任何人有任何疑问， 什么，你可以拍我一个问题。
是啊。
去吧，去吧。
>> 观众：我只想问， 你能解释一下如何将文件
上传作品完全相同。
>> LUCIANO ARANGO：是啊。
因此，让我告诉你的文件 上传真正的快。
因此，文件上传 -
问题机智的文件上传 现在是 -
我要打开代码，以便你们 看到幕后的代码。
并且它上传。
下面是该文件上传代码。
>> 我们正在努力进入这个 目录在这里。
我们正在努力，一旦我们输入 文件，使用isset文件 - 因此，当有一个
文件中的文件，该图像，然后 我们尝试把它搬到这里。
我们抓取的文件在这里。
该方法是POST，类型，图像，文件。
我们正在发送此文件。
然后一旦我们得到它，所以一旦文件 有一个形象，我们正在努力将其发送
到这个目录。
>> 问题是，该网站是不 让我去这个目录，
因为它不希望我回去。
它不希望我去 -
我得走了 - 所以这里的上传。
这里的图像。
我得走了所有的方式回到了 开始，把它放在那里，然后
快去把它放进目录中。
所以，如果我运行一个终端窗口， 我想移动文件 -
[听不清]
可以看到它。
如果我想移动一个文件，我有 把文件名，然后在
完整的路径，我想将它发送到。
>> 然后服务器不 让我回去。
所以它不是让 我得到这个文件。
但一般情况下 -
所以有一个代码 上传文件。
所以，通常会发生什么事是， 人的不检查，如果我的档案
结束与jpeg格式，所以我 希望检查。
让我打开一个例子太真实了快。
>> 确定。
此人的权利 -
这样的例子二是检查 如果的preg_match -
这里是在这里 -
确保结尾 PHP的，这是很好的。
这是好事。
但是有一个真正的大 问题与此有关。
这是好事。
但如果我把一个文件名为 myfavoritepicture.php.jpeg，我可以
还是有可能摆脱JPEG的 并运行it.k PHP的危险。
你不想要的人能够 在您的网站上运行的代码。
>> 但随后，JPEG让它通过。
这个想法是你真正想做的事 不带文件，A。但是，OK，什么
你真的想要做的是确保 你读了整个世界。
并没有什么。php在它。
有没有，PHP的 整个文件名。
>> 观众：但是你可以 把jpeg格式就完了。
这些服务器仍然可以运行的代码。
>> LUCIANO ARANGO：不，它不会 在开始运行。
你要回去试试 如果你能看到 -
>> 观众：所以我们要 -
OK，只是另一套涉及 -
>> LUCIANO ARANGO：是啊。
>> 观众：确定。
>> LUCIANO ARANGO：是啊。
确定。
还有没有其他问题？
确定。
我要离开这个和排序 尝试的，如果你们能看到 -
其他的人都多一点点 复杂，因为它们需要多少
SQL比更多的知识只是 网页的SQL开始知识和
什么是JavaScript的。
但我会尽量保持这个理想， 并希望你们将学习
关于这一点，并试图采取偷看 你可以做什么和多少个实例
你可以通过。
>> 任何人有任何其他 关于它的问题？
来吧。
是啊，拍，拍。
是啊，去吧。
来吧。
>> 观众：确定。
所以，我听到有关如何魔术引号 都不够安全。
>> LUCIANO ARANGO：什么 -
魔术引号？
>> 观众：是啊。
所以，它增加了 - 所以每当你输入 的东西，它总是添加引号。
>> LUCIANO ARANGO：是啊。
是啊。
确定。
>> 观众：然后我虽然是工作， 但后来我搜索了起来。
它说这是不好的。
但我不知道为什么。
>> LUCIANO ARANGO：是啊。
>> 观众：不要使用魔术引号， 因为它不是安全的。
>> LUCIANO ARANGO：确定。
所以魔术引号是当你插入的SQL 而且它已经增加了报价给你。
>> 观众：它总是添加引号 无论你把英寸左右
>> LUCIANO ARANGO：是啊。
因此，与该问题是 -
我会看看 -
>> 观众：它是如何获得 SQL语句？
或者，我想这可能是 就像报价选择。
>> LUCIANO ARANGO：是的，你需要 好的报价为SQL。
>> 观众：没有，但服务器 它会为你。
>> LUCIANO ARANGO：这些小行情 在这里，这些小行情？
>> 观众：是啊。
>> LUCIANO ARANGO：是啊。
问题是，你可以 注释掉最后 -
好了，有什么我可以做的是，我可以发表评论 出来 - 所以让我们来看看 - 让我
打开一个文本编辑文件。
让我这个编辑 在这里直接。
确定。
你们可以看到清楚？
有什么我可以做的是，我可以发表评论 出最后一个。
这将注释掉最后一个。
然后我把一个在这里，把 这里所有的恶意的东西。
>> 所以用户实际上 输入，对不对？
用户的输入不 的事情，对不对？
这就是我要的输入为 的人试图进入。
我打算把 -
这是一个引号。
它只是弯弯曲曲的错误。
然后什么代码 是打算做 -
对不起，我要借此出来。
什么是代码要做的是 这将添加第一个
引号在这里。
并且它要添加的最后 引号为好。
>> 而且它也将加入 最后，最后一个引号。
但我评论这些报价 标记出来，这样他们就不会运行。
和我完成这个报价 纪念在这里。
你明白吗？
你失去了什么？
我可以评论的最后报价 标志，并采取照顾
第一个引号。
>> 观众：而刚刚完成 的第一个。
>> LUCIANO ARANGO：是啊。
而刚刚结束的第一个。
是啊，这是正确的。
这就是我能做的。
是啊。
任何其他问题这样呢？
这是一个很大的问题。
没有，是的，也许。
希望你们会有点令 当你学习SQL和更有意义
这样的事情。
但要确保你 -
请关注这些工具。
对不起，这些工具在这里。
这些工具都是伟大的。
如果任何人有任何疑问， 您也可以发邮件给我。
这是我的正常邮件。
这是我的工作电子邮件，其中 当我在SEAS工作。
>> 好的，谢谢。
谢谢，伙计们。
你是好去。
你不必呆在这里。
不要鼓掌。
这是奇怪的。
好的，谢谢，伙计们。