草庐IT

php - 创建 PHP INI/CONFIG 文件并确保其安全的最佳实践

我一直使用普通的PHP文件并只在该文件中定义变量,但这被认为是最佳实践吗?例子: 最佳答案 将您的PHP文件命名为以.ht开头的名称(例如.htconfig.inc.php)也有帮助,因为Apache通常有一条规则,从不提供任何名为.ht*的文件。但将文件放在文档根目录之外会更好。 关于php-创建PHPINI/CONFIG文件并确保其安全的最佳实践,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

php - 使用基于时间的旋转散列或字符串来确保安全

在CMS应用程序中,我偶尔需要打开另一个域的iframe。目前,我将该iframe的URL设置为非常模糊的内容。像http://domain.com/iframe/jhghjg34787386/。这可行,但理论上iframe源url将保存在用户的历史记录中,并且可以从外部世界访问。因此,我想知道如何使用基于时间的方法来处理在请求端处理并在iframe源端检查的不断变化的哈希或字符串。但是我希望它是基于时间的。我可以这样做来获取我的哈希值:但是这两个服务器必须完全同步。有什么方法可以使时间限制更加模糊?我也对其他方法持开放态度。有什么方法可以验证iframe的父窗口是否属于某个域?

php - 如何确保上传的文件是MS Word文档?

我正在考虑将上传的文档保存到webroot之外的文件夹中,并使用readfile(file)为下载提供脚本。但是,我想知道以下是否足以消除可能存在的任何威胁:$filename=basename($_FILES['uploaded_file']['name']);$ext=substr($filename,strrpos($filename,'.')+1);if(($ext=="doc")&&($_FILES["uploaded_file"]["type"]=="application/msword")){executerestofthecode}我读过有人推荐使用finfo_open

php - 浮点舍入错误 php ...我怎样才能确保它正常工作?

我有以下功能来确定我的销售是否已全额付款。我不记得我为什么要这样做,但到目前为止它一直有效,我不记得为什么我必须这样做。function_payments_cover_total(){//get_paymentsisalistofpaymentamountssuchas://10.20,10.21,oreven10.1010101101(10decimalsmax)$total_payments=0;foreach($this->sale_lib->get_payments()as$payment){$total_payments+=$payment['payment_amount']

php - 确保字符串是 UTF-8 编码的

在我的应用程序中,我读取了一个csv文件并向用户显示内容。但是编码有问题。我有两个csv文件example1.csv和example2.csv。我都在notepad++中打开,它显示example1的ANSI编码和example2的不带BOM的UTF-8。首先,我尝试了mb_detect_encoding功能来检测编码,但它在两种情况下都显示UTF-8,这是不正确的。其次,我尝试使用utf8_encode将文件内容转换为UTF-8.这适用于ANSI文件。但是对于没有BOM文件的UTF-8,它似乎被编码回ANSI。它显示Ã而不是德语ß。其他特殊字符也一样。我想确保内容在显示或处理之前始终

php 你如何确保 $_POST 数据来自你的表单而不是外部影响?

有没有办法确保我的代码收到的$_POST数据来self的表单而不是外部影响。基本上我不希望有人能够将$_POST欺骗到普遍可用的页面,例如帐户创建。任何用户都可以访问帐户创建页面,但我想确保只有通过我的account_creation表单提交的数据才会得到处理。我唯一能想到的就是启动一个$_SESSION,然后使用隐藏输入将session_id提供给表单。在$_POST上,隐藏输入的值将与当前session_id匹配。是否有更好的方法来实现这个结果?如果有,我期待听到。 最佳答案 您无法确保数据来自表单。POST请求只是一个POST

php - 验证构造函数参数,确保参数具有正确的类型

在编写我的第一个PHP类时遇到了一个问题,以下是我的__construct方法:publicfunction__construct($foo,$bar){$this->foo=$foo;$this->bar=$bar;}$foo和$bar都是必需的,没有它们,这些方法将无法工作。当对象像这样实例化时没有定义它们是可以的:$var=newClass();因为这会引发异常(例如,类需要2个参数,没有设置)。但是如果它们被设置但不是像这样的正确类型:$var=newClass('33','ddd');我的方法将失败,因为变量类型错误。我应该在哪里验证这些?在构造函数中还是在每个方法中?我现在

php - 如何确保用户输入的是 CSS 而不是恶意代码?

在我的网站上,我想包括一个文本框,允许成员在他们的个人资料上更改他们想要的任何他们想要的css明智......但我不想有一天早上醒来发现我的网站被黑了或者有人输入错误并销毁了所有内容或访问了他们不应该访问的内容。是否有任何简单的方法来验证他们输入的文本是否仅为css?我在这里看到另一个类似的问题,它有XSS备忘单和禁用内容的提示(和基本上我只想让PHP调用任何自定义css并将其插入用户配置文件的脚本标记之间。我想允许尽可能多的CSS。这是最好的方法吗?我不知道如何构建一个系统来生成安全文件,也没有耐心用选项来构建整个部分(特别是因为我想给成员(member)更多的个人资料自由)。任何建

php - 如何确保用户观看完整视频?

背景:我正在开发一个基于网络的教学程序(使用Drupal7,如果重要的话),要求用户按顺序观看教育视频。我想确保他们在访问下一个视频之前完整地观看了每个视频。我对YouTubeAPI很不熟悉,但我梳理了PHP开发人员指南,但没有找到有关如何执行此操作的任何信息。我愿意接受任何合理的方式来实现这一目标。我当时在想,检查是否有一个或两个随机时间码被击中,以及电影是否播放完毕,会让不看视频就很难跳过。所以为了完成这个我需要弄清楚两件事:如何让服务器知道正在观看的视频何时达到选定的时间码,以及如何让服务器知道视频何时结束。如果有人能指出正确的方向,我将不胜感激。 最

php - 如何确保我们在属性上使用 __invoke 而不是在主对象上使用 __call?

假设我们有如下代码:worker=$worker;}publicfunction__call($name,$arguments){echo"called\n";}}$c=newCaller(newWorker());echo$c->worker();?>结果被调用。怎样做才能被调用? 最佳答案 这个问题同样存在于匿名函数中。您有几种解决方法:1)修改你的__call以检查它是否是一个方法,如果不是,调用属性:if(property_exists($this,$name)&&is_object($this->$name)&&metho