我使用此类(取自博客教程)生成唯一键来验证表单:classformKey{//Herewestorethegeneratedformkeyprivate$formKey;//Herewestoretheoldformkeyprivate$old_formKey;//Theconstructorstorestheformkey(ifoneexcists)inourclassvariablefunction__construct(){//Weneedthepreviouskeysowestoreitif(isset($_SESSION['form_key'])){$this->old_fo
我正在使用get方法为评论系统执行一些操作,如批准、标记垃圾邮件、删除。我知道走这条路很不安全,但我无能为力。因为使用$_GET方法的原因是使用PHP_SELF在页面本身内执行操作,仅供引用,我也使用使用复选框的post方法来执行操作。现在为了让它有点安全,我想随机化数字或生成哈希或其他东西,然后比较它,获取id并执行操作我现在的代码有点像这样。">Unapprove">Approve|">Spam|">Edit|">Delete然后我使用这段代码执行操作..if(isset($_GET['approve'])){$id=intval($_GET['approve']);$query=
在我的注册表中,我进行了ajax调用以检查用户名是否可用。但是,我担心这会打开系统以供机器人检查有效用户名。如何保护服务免受外部调用?谢谢 最佳答案 HowcanIsecuretheservicefromexternalcalls?好吧...任何试图注册的用户都将是“外部电话”!我不认为用户名检查会带来安全风险。机器人可以注册为fsdjiojiejfio并且非常确定之前没有人使用过它。我宁愿花时间来确保注册过程的安全,这样即使使用有效的用户名,机器人也无法注册。 关于php-用户名可用性
我在一个cakephp应用程序中工作,我在其中使用Security::cipher来加密一些数据。它工作得很好,但我已经将文件和数据库移动到另一台服务器,现在加密结果不同了。我试过一些简单的线条:$security=newSecurity;$code=$security->cipher('1234',Configure::read('Security.cipherSeed'));当我打印$code时,两个服务器中的值不同。我在两个core.php文件中配置了相同的Security.cipherSeed。Security::cipher函数是否使用某些服务器值进行加密?谢谢。
我想知道这个小片段是否受到本地文件注入(inject)漏洞的影响。我知道可以通过在请求中放入“%00”(空字节)来忽略任何内容。但是如果/some/dir/目录下没有以'prefix_'开头的子目录,是否可以利用呢?怎么办?在此先感谢您的回答。 最佳答案 你的意思是这样的吗?$lang.='en/../../../../../etc/passwd'.0x00;你可以通过以下方式避免这种情况$path='/some/dir/prefix_'.$_GET['path'].'whatever';$path=realpath($path);
获取文件的MIME类型的最佳且最安全的方法是什么?我已经找到了这个:http://de3.php.net/manual/de/ref.fileinfo.php但是fileinfo()似乎很容易操作。有没有更好的方法来获取文件mime类型?顺便说一句,我需要它来存储图像文件。 最佳答案 还有一种方法但是,如果您能准确地说出“安全”的含义以及您所指的操作类型,将会有所帮助。 关于php-在php中获取文件mime类型的最佳方法,我们在StackOverflow上找到一个类似的问题:
我需要显示有关序列号的SSL证书信息。当我使用$cert=file_get_contents('mycert.crt');$data=openssl_x509_parse($cert,true);$data['serialNumber']我喜欢-5573199485241205751但是当我运行命令时opensslx509-in'mycert.crt'-noout-serial我收到序列号=B2A80498A3CEDC09可以用PHP接收吗?谢谢。 最佳答案 您可能正在接收字节数组形式的序列号。将这些字节转换为十六进制,您应该使用o
我有一个名为addItem的PHP服务。当有人在客户端提交表单时调用此服务。我如何确保只有在从预期表单调用时才会添加项目?例如,试图阻止某人通过自动curl调用提交内容。谢谢你,三通 最佳答案 简短的回答是你不能。只要表单可访问,您用于保护表单的任何方法都可以自动处理。您永远不应指望用户发送的数据是安全的。但是,您可以采取一些措施来让任何想要欺骗您的表单的人都变得更具挑战性。添加CAPTCHA这可能会过滤掉几乎所有脚本提交,但也会对普通用户产生最大的负面影响。采用某种形式的CSRF保护(无论如何你都应该拥有)。这意味着任何想要通过表
我已经阅读了几篇关于网站安全的文章,他们建议将此代码添加到您的.htaccess文件中以防止显示PHP错误:#supressphperrorsphp_flagdisplay_startup_errorsoffphp_flagdisplay_errorsoffphp_flaghtml_errorsoffphp_valuedocref_root0php_valuedocref_ext0如果我将这段代码直接添加到我的.htaccess文件中,我会得到一个500内部服务器错误。它出什么问题了?这些都是弃用的东西吗? 最佳答案 它实际上依赖于
我听说处理上传图像的最佳方法是使用GD库“重新处理”它们并保存处理后的图像。参见:PHPimageuploadsecuritychecklist我的问题是如何在GD中进行这种“重新处理”?这到底是什么意思?我不太了解GD库,我担心我会把它搞砸......那么如果有人以前这样做过,你能给我举个例子吗?(我知道,另一种选择是使用ImageMagick。对于ImageMagick,我在这里找到了答案:RemoveEXIFdatafromJPGusingPHP,但我现在不能使用ImgMagick。顺便说一句......删除EXIF数据意味着完全重新创建图像这种情况?)(如果有人感兴趣,我正在使