我知道只要有用户输入,有些人可能只会回答“从不”。但是假设我有这样的东西:$version=$_REQUEST['version'];$test='return$version>3;';$success=eval($test);这显然是一个简化的案例,但是用户可以输入什么作为version来让它做一些恶意的事情吗?如果我限制$test可以采用的字符串类型来将某些变量的值与其他变量进行比较,有没有任何人可以看到利用它的方法?编辑我已尝试在服务器上运行以下脚本,但没有任何反应:3;';$result=eval('return'.$teststr);var_dump($result);?>我
这是我的第一个问题:我希望PHP脚本在每个页面上包含加密的用户ID。然后,我将使用JS读取它并将其发送到Java服务器,在那里我解码值。我想让它变得安全,这样人们就无法伪造他们的ID。(别担心,这不会用于身份验证。)加密的ID可能是MySQL的自动递增列1、2、3..,我无法更改它。如果有这些属性就好了:加密后的ID应仅在一天内有效,最好是一次性使用一次加密的ID不应轻易伪造(理想情况下甚至是用户自己伪造)请随意提出其他类型的解决方案。谢谢! 最佳答案 使用安全散列函数来散列用户ID和一些定期更改的值的组合可能是个好主意。例如,您可
我有一个Joomla!1.5客户要求对其安装的健康状况、SEO和安全性进行审核。乔姆拉!ToolSuite/HISA不再存在;我可以使用任何类似的扩展吗?如果不是,那么在评估Joomla!时通常必须解决的主要问题是什么?网站的健康和安全?谢谢! 最佳答案 我不知道有什么软件可以帮助Joomla分析这个问题。我可以花几个小时来研究这个...,这是简短的版本;-)健康:确保客户端已更新为最新版本的Joomla1.5,其中包括所有最新修复程序,例如:xss、sql注入(inject)等...确保PHP设置正确确保MySQL设置正确随着时间
看完网站上的一篇文章后,我真的很担心自己服务器的安全......在一个PHP文件中,该文件后来包含在我向用户显示的所有主要php页面中,我的用户名和密码(在我的整个网站上使用-服务器根目录,mysql根目录等)以纯文本插入...有什么可担心的吗?任何人都可以读取php文件(比如下载它并读取它而不是让服务器执行它)吗?是否存在我的用户名和密码被盗的风险?它们是为变量提供值的简单文本字段。如果是这样,您有什么建议的解决方案吗?像一个加密引擎?还是什么?提前致谢! 最佳答案 将包含用户名和密码的配置文件存储在可公开访问的根文件夹之外。例如
我有一个脚本,用户可以输入一个图像URL(来自另一个网站),然后使用JS裁剪它并将它保存在我的服务器上。我的问题是...从另一台服务器获取图像时,使用CURL还是allow_url_fopen(通过file_get_contents())更安全?或者是否有首选/更安全的方法可用?安全是我的一个大问题,因为我知道这是一个非常危险的过程-如果这会产生影响,脚本将只需要对图像文件起作用。谢谢 最佳答案 curl的错误处理比file_get_contents()好得多。如果您关心这一点,那么curl可能是您的不二之选。不过,如果简单的“哎呀
我目前正在做一个非常安全的登录系统,但我是crypt()函数的新手,需要一些快速帮助。我在注册过程中使用crypt()对密码字符串进行加密并将其保存到数据库中。但是,我如何才能在登录期间解密key?或者我应该怎么做?或者是否可以对提交的密码字符串施展魔法,将其与数据库中的加密key进行比较? 最佳答案 crypt()不加密密码,它哈希它们。根本区别在于,您无法找回经过哈希处理的密码(想想炸薯饼-如果您有炸薯饼,就无法找回土bean)。因此您将相同的函数应用于输入并将其结果与存储在数据库中的值进行比较:$stored_pw=get_h
关于SO已经有一些有用的问题:Rijndael256Encrypt/decryptbetweenc#andphp?RewriteRijndael256C#EncryptionCodeinPHPRijndael/AESdecryptionC#toPHPconversion但是我的特殊情况仍然有困难。我尝试了各种方法,但最终收到错误“IV参数必须与block大小一样长”或与结果哈希不匹配的文本。我对加密的了解还不足以弄清楚我做错了什么。这是php版本:$pass='hello';$salt='application-salt';echoEncrypt('hello','applicatio
我正在使用这段代码:$url="http://www.webtoolkit.info/javascript-base64.html";printbase64_encode($url);但结果很长:“aHR0cDovL3d3dy53ZWJ0b29sa2l0LmluZm8vamF2YXNjcmlwdC1iYXNlNjQuaHRtbA==”有没有办法把长字符串加密成短字符串并且能够转换?例如:new_encrypt("http://www.webtoolkit.info/javascript-base64.html")Result:"431ASDFafk2" 最佳
我正在考虑为PHP应用程序支持加密的sqlite数据库。我正在使用PHP的SQLite3扩展,它们似乎已经支持加密方法,至少SQLite3::__construct允许传递加密key。我无法弄清楚的是,他们在文档中谈论的是哪个加密库。通过谷歌搜索,我发现了以下内容:密码算法sqlite见sqlite地穴我不清楚的是:这些库如何与SQLite3集成如果他们在指定加密key和设置数据访问等方面相互兼容。如果我可以在我的应用程序中自动检测我的SQLite3安装支持的加密库,那么我的应用程序就可以支持不同的加密库非常感谢任何帮助! 最佳答案
我刚刚和一个同事吵架了。我的index.php包含我的mysql连接,因此也包含主机、用户名、密码和数据库名称。他声称这是一个安全线程,因为php解析器可能会失败,这会导致网络服务器将整个文件作为纯文本返回。然而,我相信如果php解析器失败,网络服务器会给用户一个内部服务器错误。谁能确认它是否存在安全风险?谢谢。 最佳答案 简短的回答是否定的。长答案是肯定的,但前提是:您的服务器已被入侵,在这种情况下,阅读您的php文件的人是您最不担心的您错误地配置了服务器来解析.php文件和纯文本,这确实非常愚蠢。此外,如果您正在使用某种版本控制