草庐IT

SECURITY

全部标签

php - 我们应该在框架中重写遗留的 php 应用程序吗?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我目前正在处理遗留的PHP应用程序。让您了解应用程序是什么样的:后端大约有14,000LOC。前端约为3,000LOC。每个url都是一个php脚本,没有使用类。这些php脚本中的每一个都有一个与其关联的smarty模板。它大量使用PEAR表单生成插件。前端以两种语言提供。这是通过复制php脚本+模板来完成的。它没有遵循许多最佳实践,例如转义所有sql参

php - Cookie 是否存在安全风险?

假设我们有一个网站要求用户提供他的姓名。网站然后将此值存储在cookie中,并在下一页上通过PHP检索它并以某种方式使用它(也许页面将名称显示为文本)。用户是否可以修改cookie数据以注入(inject)恶意代码?cookie数据在被脚本检索时是否应该清理?(这是一个假设的场景。显然这里不需要cookie。) 最佳答案 Couldausermodifythecookiedatatoinjectmaliciouscode?Shouldcookiesbesanitizedasthey'reretrievedbythescript?注入

php - 如果用户只查看自己的数据——是否存在 XSS 风险?

如果我的网站只允许用户查看他们自己提交的数据,而永远不允许其他用户提交的数据(即没有一般的“帖子”等)——那么我的网站是否真的存在XSS风险?我仍将致力于XSS解决方案(如httmlspecialchars()等)-但我很好奇攻击者是否可以通过查看他们自己的XSS攻击获得任何东西? 最佳答案 攻击者无法通过对自己使用跨站点脚本技术获得任何好处。跨站点脚本的目的是以恶意方式操纵向用户显示的页面元素,无论是网络钓鱼还是读取cookie。换句话说,攻击只能影响客户端实体。但是,请务必牢记“用户只查看自己的数据”的含义。假设我有一个网站,用

php - 如何以安全的方式提供密码重置功能?

我目前正在完成一个网站,要求用户创建个人帐户才能玩托管在同一网站上的游戏。我目前难以弄清楚的是如何在忘记密码的情况下为用户实现安全的密码重置功能。这是当前的流程:第1步:用户点击网站上的“忘记密码”链接。第2步:用户进入表单并在发送电子邮件之前输入两次电子邮件地址。第3步:电子邮件包含指向另一个表单的链接,用户可以在其中输入新密码两次以进行确认。输入第二种形式后,系统将一条新记录插入到数据库中我的Recover_Password表中,该表包含“id”、“token”、“created_at”和“expires_at”列。这是链接->(mywebsitename).com/form?id

php - SQL connect.php 安全风险?

我正在编写一个PHP文件来连接到我的SQL服务器以用于网站登录系统,我很害怕我会留下巨大的安全漏洞。我的connect.php文件位于网站根目录的一个目录中:$db=newmysqli('localhost','publicguest','**********','website');密码在哪里打开看。我知道当有人浏览该网站时,他们无法通过源代码看到PHP代码,但这是不安全的吗?避免这种情况的常用方法是什么? 最佳答案 如果您的服务器存在配置问题,特别是未执行php脚本,那么有人可能能够获取该信息。为避免这种情况,您可以将文件放在文

php - PHP 5.5 的新 password_hash 函数中随机生成的密码 salt 有什么用?

我刚刚阅读了PHP5.5中的新功能,它包括新的密码散列功能(http://www.php.net/manual/en/function.password-hash.php)。现在如果你看描述,它的默认操作是随机生成一个密码盐,如果你没有指定。但我看不出这有什么用。因为如果您正在对密码进行哈希处理以进行安全存储并且盐是随机的。然后,当您运行用户输入的密码字符串时,如果盐每次都不同,则每次生成的哈希值都会不同。因此,您将无法成功比较输入的有效密码与存储的密码哈希副本。那么这到底有什么用呢? 最佳答案 盐包含在哈希值中。'saltsalt

php - 验证数据库匹配中的 $_GET id 是否足够安全?

我在网站上有2个页面,一个是index.php,索引页面列出了数据库中存在的所有帖子,另一个页面是post.php,当点击索引页面上的特定帖子时,帖子页面显示单个帖子。现在我用来列出index.php上所有帖子的代码是:$postslist=mysqli_query($db,"SELECT*FROMposts");while($post=mysqli_fetch_array($postlist)){echo''.$post['title'].'';}这行得通,我的所有帖子都显示在我的index.php页面上,链接链接到post.php页面上。在post.php页面上我使用了这样的代码:

php - HTTP参数污染

在我们正在开发的网站中,在进行安全检查后,我们发现了安全问题。该报告也包含HTTP参数污染漏洞。在网络上我可以找到什么是HPP?它如何注入(inject)等;但是我找不到如何避免此类问题。服务器语言是php。&我知道相同的参数可以重复&当有很多相同的参数时,php只考虑最后一个参数。但是做一些事情来避免这种风险是没有任何意义的。那么有人可以通过示例指导我如何避免HPP漏洞吗?提前致谢 最佳答案 请注意,我在这里描述的是“服务器端HPP”,但是,该漏洞有一个客户端版本。了解服务器端版本也有助于了解客户端版本。HPP是指您的应用程序向另

php - 如何清理输入 codeigniter 3?

首先我要提醒你我已经阅读了thispost和其他一些关于我的问题的帖子,但大多数都差不多是旧的,而且是大约3年前的。现在我正在使用CodeIgniter3,我想知道什么是我在插入数据库之前从用户那里检索的数据的最佳清理过滤器。这是为了我的网站注册,我不知道注册的是哪种用户,我不能相信他们。这可能很危险我想在将所有输入插入数据库之前对其进行清理我不知道input类足以清理它?请告诉我codeignitersanitizer功能!我已经阅读了codeigniter文档中的安全类,但我想确定一下。 最佳答案 根据Docs,input类,执

php - 清理 PHP 密码字符串

我有一个PHP页面,允许人们运行htpasswd来更新他们的密码。清理他们的输入的最佳方法是什么。我不想将输入限制太多,因为我想允许使用安全密码。这就是我所拥有的。如何改进?$newPasswd=preg_replace('/[^a-z0-9~!()_+=[]{}.\\\/?:@#$%^&*]/is','',$inputPasswd);$cmdline=$htpasswd."".$passwd_file."".escapeshellarg($username)."".escapeshellarg($newpasswd);exec($cmdline,$output,$return_var