我开始在我的项目上开发用户注册。用户将通过电子邮件发送的链接确认他们的注册。我想我可以使用表单中插入的电子邮件,加上一个随机盐,然后散列这个连接的字符串,这样每个字符串标记都是唯一的。链接将是这样的:http://www.example.com/register/7ddf32e17a6ac5ce04a8ecbf782ca509我认为它很好并且易于构建,但我不确定它是否足够安全。我正在使用CakePHP2.7和SQLServer2014开发这个项目。 最佳答案 这实际上取决于您如何生成MD5。只要确保您的数据是随机的。我不使用MD5来
有没有什么方法可以安全地包含页面而不用将它们全部放在一个数组中?if(preg_match('/^[a-z0-9]+/',$_GET['page'])){$page=$_GET['page'].".php";$tpl=$_GET['page'].".html";if(file_exists($page))include($page);if(file_exists($tpl))include($tpl);}我应该添加什么才能使其非常安全?我这样做是因为我不喜欢必须包含必须包含在所有页面上的内容。“包括页眉>内容>包括页脚”方式。我也不想使用任何模板引擎/框架。谢谢。
我在一个关于信息安全的学校项目中,其中一项作业是用PHP编写一些安全页面。我小组中没有人知道PHP,但这不是什么大问题,我们会学到足够多的知识来创建所需的简单页面。助教们给出的其中一个技巧是使用strip_tags()和mysqli_real_escape_string()这两个函数。我认为这些是安全的,但在没有深入了解的情况下我不确定。一些简单的谷歌搜索至少揭示了过去存在的漏洞。由于任务的一部分是尝试破坏其他组的系统,所以我们自己的系统是安全的,并且在其他组的系统中找到可能的漏洞是很重要的。而且大部分群体都会盲目地使用这两个功能。所以我的问题是:strip_tags()中是否存在任何
我正在尝试保护我的PHP图像上传脚本,我必须跨越的最后一个障碍是让用户无法直接执行图像,但服务器仍然可以在网页中提供它们。我尝试更改文件夹的所有权和权限无济于事,因此我尝试将图像存储在public_html之上,并将它们显示在存储在public_html中的页面中。我的文件结构:-userimagesimage.jpgimage2.jpg-public_htmlfiletoserveimage.html我尝试像这样链接到userimages文件夹中的图像:但它不起作用。我在这里缺少什么吗?如果您有任何更好的建议,请告诉我。我试图阻止公共(public)用户执行他们可能上传的具有潜在危险
我有一个网络应用程序,其中大部分功能都在一个javascript文件中,我即将推出该应用程序的专业版,注册用户可以在其中访问更多功能。同样,额外功能只是javascript文件中的额外功能。我打算做的是:-如果用户已登录,则链接pro_script.js,-如果用户未登录,则链接到normal_script.js,通过使用php的用户身份验证在页面的标题处。我想知道这是否是处理这种情况的最佳方法?我担心pro_script.js驻留在javascripts文件夹下可访问,并且可以编写加载pro_script.js而不是normal_script.js的脚本或插件。
我是新手,我要说清楚。我听到很多关于转义数据以防止XSS攻击的说法。我该怎么做?这就是我目前正在做的-$s=mysqli_real_escape_string($connect,$_POST['name']));这就够了吗?谢谢 最佳答案 如果你将数据输出到html你应该使用htmlspecialchars()否则,如果您将数据存储在数据库中,您应该使用mysqli_real_escape_string()和castnumbers转义strings(或对两者都使用准备好的语句)并通过基于白名单的过滤whem保护标识符/操作符。如果您
有没有一种方法可以在像http://builtwith.com这样的网站检查时将我的真实服务器技术从PHP屏蔽为显示为Python??或者至少根本不显示任何内容? 最佳答案 假设您使用的是apache,您可以使用ServerTokens更改默认的“告诉所有”行为和ServerSignature指令:ServerTokensProdServerSignatureOff这将从错误页面中删除识别标记,并且只返回带有HTTP请求的服务器名称,而不是所有已安装的模块。这是一个注释掉ServerTokens的示例:14:45:52bartley
好的,我有一些用户输入,我做了一个echostr_replace('我想知道,无论如何用户是否可以破坏此过滤器?最初我认为这个脚本非常安全,但在阅读了一些关于php、字符集和安全性的文章后我开始怀疑它的健壮性。 最佳答案 这取决于输入的最终位置。例如,如果在某个时候你最终得到了一个像这样构造的(糟糕的)模板......">alink然后有人可以通过简单地使用以下输入来注入(inject)代码:javascript:do_whatever()即使输出通常不会回显到href字段中,像这样..."href="http://www.goog
我正在处理的目标系统不支持PDO,尽管我在上使用PHP5.1.x寻求防止SQL注入(inject)的解决方案PostGres-DB8.2+。目前没有切换到PDO的机会。我目前的解决方案是pg_prepare-prepared语句://TryingtopreventSQL-Injection$query='SELECT*FROMuserWHERElogin=$1andpassword=md5($2)';$result=pg_prepare($dbconn,"",$query);$result=pg_execute($dbconn,"",array($_POST["user"],$_POS
我有一个User实体,它有一个bool列isActivated。根据每个用户的列值,他可能会或可能不会登录(即他尚未激活他的帐户,因此无法登录)。我通过在防火墙中分配一个simple_form.authenticator来实现这一点,它会检查每次登录。我想弄清楚如何在用户仍然登录时强制注销他。考虑以下场景:用户在其帐户仍处于事件状态时登录。管理员停用了用户的帐户。用户已注销,因为它不再活跃。不幸的是,第3步没有发生。原因可能在于用户已经收到token并被Symfony2.5的防火墙认为是“tursted”(可能token缓存在安全上下文中?)。我想知道解决这个问题的最佳方法是什么?