标签: security

这个SQL查询是否可以安全地注入?

下面的代码是用php编写的:

$user = addslashes($_POST['user']);
$pwd = addslashes($_POST['pwd']);

$query = "SELECT * FROM userdata WHERE UserName='$user' AND Password=PASSWORD('$pwd')";
Run Code Online (Sandbox Code Playgroud)

然后将查询发送到mysql还有什么我需要处理的吗?

请指出.

php mysql sql security sql-injection

1
推荐指数
2
解决办法
738
查看次数

什么更安全$ _POST或$ _SESSION?

我正在使用优秀的jquery-file-upload图像上传器,但需要在子文件夹中存储不同用户的图像.我可以通过将文件夹的名称作为$_POSTarg发送到upload.class.php或将名称作为$_SESSIONarg 检索来实现.

安全性有偏好吗?

php security jquery

1
推荐指数
1
解决办法
158
查看次数

形式欺骗和解决方法

我正在尝试开发一个表单助手来防止形式欺骗.所以我想出了这个:

<form...>
<?=form::secure()?>
...
</form>
Run Code Online (Sandbox Code Playgroud)

使用键'_token'标记隐藏的表单,使用令牌,该令牌是用户会话的id的md5(随机并在1周后续订).然后在"动作"网址(从表单):

$token = (isset($_GET['_token'])) ? $_GET['_token'] : null;
$token = (is_null($token) and isset($_POST['_token'])) ? $_POST['_token'] : $token;
if (form::is_secure($token)) { // checks if the given token is equal to md5(user id)
    ...ok...
} else {
    ...error...
}
Run Code Online (Sandbox Code Playgroud)

这是否可以防止形式欺骗或我遗漏了什么?如果用户ID的确切时刻到期时,用户刚刚加载的页面,然后提交表单,它只是打印错误,他应该再次提交表单,但多数民众赞成接受(这是罕见的).

我认为这里唯一可能出错的是,如果潜在的攻击者能够获得用户会话ID,然后他可以将?_token = id附加到它的请求并将其提供给用户进行浏览,但此时,如果攻击者拥有用户会话ID,它无论如何都可以做任何他想做的事情.

我对吗?如果没有,我如何编辑我的代码以实现我的目标?

html php forms security

1
推荐指数
1
解决办法
1708
查看次数

哈希,加入更多的盐

好的,所以我理解为什么在散列之前输入密码是个好主意.问题是,通常人们建议将盐附加或添加到密码中,为什么不同时使用?

我的想法是,所以如果黑客先生掌握数据库并希望得到人x的密码,他会认为自己,大多数人都建议附加或预先添加盐,所以我们这样做.他生成一个彩虹表密码+盐的所有组合,并试试他的运气.如果这不起作用他会做同样的但盐+密码.

为了使攻击变得更加困难,为什么开发人员不再采取进一步做"盐+密码+盐",或"反向(盐)+密码+盐",或者你可能很想要并开始切割密码/盐,开始在这里和那里放点盐等.

黑客能够找到密码的唯一方法是,他是否可以访问源代码(了解在散列之前如何将盐编织到密码中)

另外需要注意的是,人们建议在进行按键拉伸时至少进行1000次迭代,为什么不进行1147,1652等等:)

第二个注意事项,当查看​​哈希字符串时,是否可以计算出使用的哈希函数?

security hash cryptography salt

1
推荐指数
1
解决办法
247
查看次数

密码盐和秘密

因此,在构建webapp并存储密码时,安全性和性能都是要记住的重要事项.由于GPU的速度越来越快,我们已经看到即使盐析SHA1密码也很容易被破解的证据,我想知道存储密码的最佳做法是什么.

我认为,为了增加存储密码的安全性,你可以为salt添加一个秘密.所以例如,这个的python代码可能是:

import hashlib
import hmac

secret = 'XYZ'
h = hmac.new('salt' + secret, 'password')
Run Code Online (Sandbox Code Playgroud)
  • 这是常见的事吗?
  • 这有什么缺点?
  • 这个领域的最佳实践是什么?

PS我没有在安全论坛上发布这个,因为我想要一个webapp开发人员的观点.

python security passwords performance google-app-engine

1
推荐指数
1
解决办法
1602
查看次数

如何在从public_html中找到一个文件目录后使用include返回public_html根文件

基于一些非常有用的提示,我使用以下代码来包含PHP我的根目录之外的文件,看起来类似于:

define('WEB_ROOT', __DIR__);
define('APP_ROOT', dirname(__DIR__));
define('PHP_ROOT', APP_ROOT . DIRECTORY_SEPARATOR . 'application');


include(PHP_ROOT . DIRECTORY_SEPARATOR . 'bootstrap.php');
Run Code Online (Sandbox Code Playgroud)

我的问题是,例如,您可以根据bootstrap.php上面的内容包含代码.

如果那个PHP文件引导程序有自己的代码行,那么在public_html根文件夹中包含一个文件BACK ....如何编写一个代码呢?我这样做有些困难,我的目标是我不想在代码中填写实际的文字目录,我想避免文件遍历攻击

php security include root

1
推荐指数
1
解决办法
8828
查看次数

密码保护,只允许一个IP地址访问目录?

我的网站上有一个目录,我需要确保除了我自己之外没有人可以进入.从我所做的阅读中,看起来有两种方法可以保护目录:

  1. 密码使用.htaccess文件保护目录
  2. 拒绝访问所有IP地址但我自己访问目录,也使用.htaccess文件

我需要尽可能安全地保护目录中的文件,所以我想我会使用这两种方法进行双重保护.

问题1:我错过了什么吗?(即我可以添加另一层保护吗?)

问题2:我需要在.htaccess文件中放置什么才能使上述工作正常?

apache security .htaccess

1
推荐指数
1
解决办法
3626
查看次数

Grails - 默认安全编码

我将数据提交到Grails中的控制器并进行了javascript注入.我很惊讶,因为我认为默认是在参数进入控制器时对其进行编码.我可以轻松设置它,以便所有参数在到达控制器时进行编码吗?另外,我可以安全地create使用文本进行GORM ,或者是否容易受到SQL注入攻击?我在指南中看到如何为find查询阻止SQL注入,但是对象创建呢?

我还看到有一种encodeAsHTML方法可以在返回客户端的路上调用编码.我不想在它进入数据库之前这样做,这样我只需编码一次吗?谢谢!

security xss grails groovy sql-injection

1
推荐指数
1
解决办法
1232
查看次数

带有node-mysql的nodejs/socket.io 安全混乱

所以我开始研究node-mysql,因为我的整个站点都是用PHP构建的,但是我想使用node/socket.io来顺利进行异步用户端更新.但是我在node-mysql中遇到了一个问题,我还没有得到答案.mysql服务器的登录信息如何不是公共信息?

根据文档https://github.com/felixge/node-mysql你连接到数据库就像这样

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'me',
  password : 'secret',
});

connection.connect();

connection.query('SELECT 1', function(err, rows, fields) {
  if (err) throw err;

  console.log('Query result: ', rows);
});

connection.end();
Run Code Online (Sandbox Code Playgroud)

那么是什么阻止用户将服务器文件放入导航栏并查看mysql服务器的登录信息?我对此非常困惑,有人可以向我解释一下吗?

mysql security node.js socket.io node-mysql

1
推荐指数
1
解决办法
1045
查看次数

"完全信任"中的"PolicyException:无法获取所需权限 - 无法查看原因

这是一个由两部分组成的问题.

我正在尝试建立我们的生产(实时)托管架构的新部分,所以我试图将我们的临时网络服务器指向新的生产内容共享(同一子网中另一台服务器上的UNC路径).

我目前正在获得可怕的PolicyException:无法获取所需的权限消息.

  • 用户上下文具有对内容共享的完整层次结构的修改权限.
  • 我已经添加<trust level="Full" originUrl="" />到Web.config(我很确定它已经是这样了,不管怎么说)
  • 跑了caspol - 见下文
  • 检查了AppPool设置 - 标识设置为相应的用户名,加载用户配置文件设置为True
  • 我只是设置了内容共享和IIS站点,所以我知道用户名和密码都是同步的(我做了仔细检查).

更令人困惑的是,抱怨的程序集是我们的内部代码库之一.在ILSpy中对它进行反编译,我可以看到对它的引用

[assembly: SecurityPermission(SecurityAction.RequestMinimum,
   SkipVerification = true)]
Run Code Online (Sandbox Code Playgroud)

,除了我不记得曾经在该程序集中添加任何代码访问安全性.引用的类中Security没有任何类具有声明性,当然也没有引用AllowPartiallyTrustedCallersAttribute或CodeAccessPermission.Assert.

我对所涉及的所有服务器(包括Web服务器和保存内容共享的服务器)具有完全管理访问权限.

那么如何解决这个问题呢?

(我们是否可以将问题#1846816转换为社区维基,其中包含所有可能的答案,而不是必须在Google上阅读数以万计的问题以及过多的点击?o)


编辑:(编辑)输出caspol -a -lg如下:

Microsoft (R) .NET Framework CasPol 2.0.50727.4016
Copyright (c) Microsoft Corporation.  All rights reserved.

Security is ON
Execution checking is ON
Policy change prompt is OFF

Level = Enterprise

Code Groups: …
Run Code Online (Sandbox Code Playgroud)

asp.net security iis-7 code-access-security

1
推荐指数
1
解决办法
6131
查看次数