我想知道在PHP中使用eval()来解析用户填写表单时输入的公式时应该检查哪些类型的内容。我看过很多关于eval()的答案,但似乎并非所有人都同意。这是我收集到的:不要对字符串使用eval(这可能是个问题,因为它是我需要解析的公式)去除来自表单的输入(我不完全确定我需要去除哪些东西)Eval可能是邪恶的,也可能不是邪恶的,并且存在安全风险(是否有其他方法可以解析字符串中的方程式?)你们认为我应该怎么做?编辑:我尝试了eval方法,虽然它确实有效,但我使用的环境卫生不支持两个以上的操作数。由于我真的不想编写自己的(可能不安全的)卫生正则表达式,所以我将查找并使用预先编写的数学类。感谢大家
您好,我是PHP的新手,我需要一些帮助。我已经创建了一个联系表格,我想添加一些验证码。我创建了一些gif图像,其中添加了一些噪声的数字,并将code_01.gif命名为no1,code_02.gif命名为no2等。我将其中一些静态地放在我的表单上,用于显示目的,就像这样:我想添加一些功能来每次随机显示图像代码,并检查输入是否与显示的6位数字匹配。如有任何帮助,我们将不胜感激。 最佳答案 简单的PHP验证码这是您将使用过的最简单的验证码脚本之一。虽然它不会模糊文本,但对于许多需要低级CAPTCHA解决方案的人来说,它可以很好地发挥作用
我目前在我的一个项目中使用以下行:htmlspecialchars($value,ENT_QUOTES,'UTF-8');因此它编码&,',",。我的问题是(由于某些内部编码原因,我正在考虑)不编码&有任何安全风险吗?因此,如果使用以下行会产生安全风险/泄漏:$value=str_replace('&','&',$value);对于,',"我很清楚为什么要对它们进行编码,因为它们可以用于html注入(inject)。但是&我没有看到任何原因(我也没有发现任何特殊的原因到目前为止的原因)。编辑:因为多次提到数据库访问。我在那里使用带有参数的学说,...所以数据库应该(相对)从SQ
我在我的变量上使用了mysql_real_escape_string(),但是通过查看我的日志我注意到来自某人的输入流具有如下条目:${@print(md5(acunetix_wvs_security_test))}1\"or(sleep(4)+1)limit1--等等。一个巨大的列表。他只是尝试而什么都没发生吗?还是我的代码仅使用mysql_real_escape_string()不安全?编辑:我看不到任何损坏,但站点上的大部分输入区域都已尝试过很多次。如果它一次不起作用,他会不会停止,意识到它是安全的? 最佳答案 这些条目来自A
我目前使用session让用户登录我的网站。现在,我想将cookie添加到组合中,以便人们可以在几天后访问该站点,而不必再次登录。我不想在cookie中存储密码或加密任何东西-所以我的解决方案是将用户名存储在cookie中,并创建另一个带有某种登录哈希(特定于每个用户的每次登录)的cookie。然后,在每个页面的顶部,检查cookie和登录session。如果cookie存在但session不存在,请找到用户名并让用户登录。因此,这将在他们成功登录后发生($row['username']是他们输入的用户名):$_SESSION['username']=$row[username];$_
会强多少returnsha1($salt.sha1($passwd));仅与:returnsha1($salt.$passwd);$salt是长度为12的每个用户字符串,由强随机ASCII组成。 最佳答案 它的强度正好是原来的两倍,因为攻击者需要执行两倍的SHA1计算才能进行暴力攻击。当然,这还不够令人印象深刻。另一方面,在循环中执行SHA15000次对于授权是实用的,但会使攻击花费5000倍的时间-这种技术被称为keystrengthening.然而,它实际上只是Jacco提到的自适应成本哈希算法的穷人替代品。
当使用PHP脚本上传文件时,检查文件大小的最佳方法是什么?$_FILES['']['size']或者filesize()?$_FILES['']['size']中的值-PHP是检查服务器中的文件大小,还是上传文件时浏览器发送的值?$_FILES['']['type']-是浏览器发送的值,上传文件时存在安全问题。$_FILES['']['size']是这样的吗? 最佳答案 这里有说明书http://www.php.net/manual/en/features.file-upload.post-method.phpsize是服务器上文件
我刚刚开始学习网络开发,有件事一直困扰着我一段时间,网站如何控制您可以访问和不能访问的内容。例如,像Facebook这样的网站。当我第一次访问该站点时,它会显示一个登录表单,一旦我登录到我之前尝试访问的同一页面,现在显示与我相关的信息,我只能在登录后访问,我可以导航到另一个站点并且然后回到谷歌,它仍然允许我使用if而无需再次登录。当某人未登录时,网站将如何阻止他们尝试访问特定页面,假设页面viewProfile.php。网站如何知道允许谁访问此页面?我意识到这个问题可能看起来令人困惑和初级,但这只是我在查看facebook时想到的一个问题。谢谢。 最佳答案
我有一个允许一个文件附件并生成一封电子邮件到硬编码地址的表单。我想避免恶意用户输入自定义邮件header的可能性(CRLF注入(inject),因为根据RFC电子邮件header以\r\n结尾,所以称为CRLF注入(inject))。假设我对可能进入$additional_headers的每条数据运行以下函数参数:这仅替换了CRLF对的回车一半。这能充分防止潜在的攻击吗?通常我会用空字符串替换\r\n。但是这种特殊形式允许一个附件,这意味着消息正文实际上最终会通过$additional_headers参数传递,因为PHP没有用于构建多部分MIME编码电子邮件的native函数(据我所知
我正在尝试制作一个喜欢/不喜欢的系统,当用户在帖子上点击喜欢时,他/她的用户ID(存储在session中)和帖子ID将通过ajax调用存储在数据库中.然后我想,如果某个用户在另一个域上制作了一个带有不可见输入字段(其中有一个他的帖子ID)的html表单,并将其链接提供给稍后选中记住我或正在查看我的网站的用户会怎样。用户将单击按钮,表单将POST发布ID到我的网站,session包含用户ID,这些将存储在数据库中。我没有想到好的解决方案。有没有比HTTP引荐来源网址更可靠的方法来防止这种情况?提前致谢 最佳答案 一种方法是在特定于用户