我正在使用AJAX开发网络/移动应用程序。该应用程序有4个页面:登录页面和3个仅向登录用户显示的protected页面。我打算使用单页应用程序模式,因此所有4个页面都将立即加载,每个页面都在自己的DIVid中,并且最初只有登录页面可见。一旦用户输入了他的用户名/密码,我就创建了一个XMLHttpRequest并与内部PHP脚本通信,后者又使用准备好的语句来检查数据库中是否存在用户名/密码,并返回true或false给XMLHttpRequest。如果结果为真,我将使protectedDIV可见并从服务器加载必要的数据,创建另一个XMLHttpRequest并通过另一个PHP脚本与数据库
这个问题在这里已经有了答案:HowdoyouusebcryptforhashingpasswordsinPHP?[duplicate](11个答案)关闭9年前。我在数据库中有一个带有salt的PHP登录脚本,但在我的注册脚本中我看到:$qry="INSERTINTOaccounts(username,firstname,lastname,password)".VALUES('$username','$fname','$lname','".md5($_POST['password'])."')";对于登录:$qry="SELECT*FROMaccountsWHEREusername='$
我正在处理一个网站,来自某些国家/地区的访问者在使用codeigniter缓存系统时遇到问题。缓存在一两个请求后被删除。经过深入调查,我将sess_match_ip和sess_match_useragent设置为FALSE,现在一切正常。将这些配置保留为FALSE是否安全?谢谢 最佳答案 它的安全性稍差,但通常是必需的,尤其是在处理移动设备或代理服务器银行后面的用户时。为确保您尽可能安全,请务必将数据库用于session,并务必设置加密key和sess_encrypt_cookie,以便混淆存储在cookie中的少量信息。您可以做的
我正在设置我继承的框架的新部分。这是一个真正执行一些最佳实践的机会,所以我会尽可能多地尝试。框架运行在php5.4(windows环境)我已经建立了一个抽象类,BaseModel。在此我定义了几个核心功能位,例如:公共(public)访问器和公共(public)数据库交互。然后我扩展它来创建我将要使用的模型。在测试用例中,文件“UserModel”创建了一个名为“User”的类。在BaseModel中,我创建了以下抽象函数:abstractpublicfunctiongetById($id);然后在UserModel中定义这个函数publicfunctiongetById($id){/
我想设置一条自定义消息,当我在Laravel5.1中抛出错误时向用户显示。例如,在Controller中我可能有:if(!has_access()){abort('401','pleasecontactsupporttogainaccesstothisitem.');}然后我的自定义错误页面将显示错误:$exception->getMessage();但是,如果出现SQL错误或其他事件怎么办?这不会也设置我会在我的错误页面上不知不觉地输出的异常消息吗?PHPdocsforgetMessage()不要对此进行详细介绍。如何在不引入任何安全风险的情况下设置特定的异常消息?
我有一个Laravel5.3版本的项目,这个文件夹中的文件不断变化。从版本控制系统中删除是否安全?如果我从我的工作副本中删除该文件夹,Laravel可以继续工作吗?folderstructure 最佳答案 您会注意到在默认的Laravel5.3安装中,storage中有3个文件夹。它看起来像这样:+storage+app+framework+logs每个子文件夹都有一个.gitignore以及其他文件夹(通常也有gitignores。那些.gitignore文件通常说忽略除.gitignore之外的所有文件。例如,这是storage
用户能否操纵php_sapi_name()返回的值?我有一个看起来像这样的脚本:if(php_sapi_name()!=="cli"){die("NoAccess");}//Dosomeadminstuff此脚本只能(!)通过命令行调用。上面的代码安全吗?或者有人可以通过HTTP调用脚本并在if条件之外执行它吗? 最佳答案 php_sapi_name()的返回值是可以安全依赖的。它不是从用户数据生成的。如果您不希望从您的网络服务器调用此脚本,则您不应该让您的网络服务器访问该脚本。如果您关心安全,则根本无法访问此脚本。您还提到了.ht
标准的chmod权限是文件的“644”和目录的“755”,不是吗?在大多数情况下,PHP不需要写入文件或目录。那么我不能从所有组中获取写权限吗?我可以将“444”分配给所有文件,将“555”分配给所有目录。这样不是更安全吗?提前致谢!注意:chmod()在我的PHP的disable_functions列表中。 最佳答案 新创建的文件和目录的默认权限由umask设置环境变量。文件的所有者和根可以更改权限。如果您不需要在您的应用中使用chmod,请将其保留在您的禁用列表中。他们看待安全性的方式是:许多比我聪明的人现在已经将chmod作为
使用CakePHP1.3,我有一个(工作)表单,它动态创建了表单字段(通过Javascript)。一切都很好,通过saveAll()保存了多个模型,而且非常漂亮。但是,每当我启用安全组件(希望获得一些自动魔术CSRF保护)时,我都会遇到404黑洞。我知道这可能是(很可能是!)由动态创建的表单字段引起的,如文档中所述。有没有办法让他们一起玩得很好? 最佳答案 你不能一边吃蛋糕一边吃。(茶青!)CSRF保护恰恰意味着只允许提交特定的表单字段列表。此列表在创建表单时确定并固定。您不能受到CSRF保护和动态更改表单中的字段。有两种解决方法:
使用PHP从用户提交的文本生成有效XML的最佳实践是什么,例如带有符号、尖括号、非ascii重音字符、换行符等的电子商务销售数据。人们依赖哪些函数、库和正则表达式? 最佳答案 将信息包装在CDATA标签中并使用htmlentities()对数据进行编码''或使用DOM$dom=newDOMDocument("1.0","utf-8");/*...*/$dom->createCDATASection(htmlentities($theData)); 关于php-使用户输入对XML安全,我们