Eli*_*zen 9 php security mongodb
我有在MYSQL上保护sql注入的经验,但是我应该在使用php驱动程序的MongoDB上小心一下?在大多数页面中,我通过GET/POST和搜索/插入系统获取数据.我通过UDID /其他字段搜索,并可以插入任何字符串值.我也通过javascript获取用户的cookie.
那么当GET/POST时,我是在添加每个变量htmlentities函数吗?
什么会取代mysql_real_escape_string?我应该用吗?
所以,例如,在做的时候
$download = array( 'url' => $_GET['url'] );
$downloads->insert($download);
Run Code Online (Sandbox Code Playgroud)
这个可以吗?
有没有办法检查一个字符串是否真的是一个UID?
在使用MongoDB和PHP时我还应该注意吗?我确实使用javascript获取我的cookie,并使用cookie在我的数据库中搜索.那个怎么样?
那么当GET/POST时,我是在添加每个变量htmlentities函数吗?
没有必要.但是,您应该htmlentities在将用户生成的数据输出到浏览器时使用,以防止XSS攻击.
什么会取代mysql_real_escape_string?我应该用吗?
你不应该mysql_real_escape_string像MySQL一样使用它.在MongoDB上没有任何内容取代它,驱动程序负责为您转义数据.
有没有办法检查一个字符串是否真的是一个UID?
唯一的方法是验证它是用该字符串查询MongoDB并检查它是否存在.
但是,您可以验证格式是否正确:
$id = '4f1b166d4931b15415000000';
$a = new MongoId($id);
var_dump($a->{'$id'} == $id); // true
$id = 'foo';
$a = new MongoId($id);
var_dump($a->{'$id'} == $id); // false
Run Code Online (Sandbox Code Playgroud)
在使用MongoDB和PHP时我还应该注意吗?我确实使用javascript获取我的cookie,并使用cookie在我的数据库中搜索.那个怎么样?
不多.对于任何Web应用程序,您都不鼓励将敏感数据存储在Cookie中,例如用户标识符,密码等,因为它们可以轻松调整并用于访问应受限制的应用程序部分,或冒充其他用户.
| 归档时间: |
|
| 查看次数: |
2646 次 |
| 最近记录: |