使用PHP考虑这行代码:
$password = password_hash($password, PASSWORD_DEFAULT);
Run Code Online (Sandbox Code Playgroud)
如果他们更改了默认密码哈希算法会发生什么?我的意思是我将在数据库中使用哈希密码.然后,根据我自己的理解,检查密码是不可能的,因为哈希算法将完全改变.
我正在使用密码哈希进行注册。我需要手动创建一个 Salt,以下是我使用的代码:
$options = [
'cost' => 11,
'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM)
];
$password = password_hash(
$this->input->post("confirm_password"),
PASSWORD_BCRYPT,
$options
);
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,它给我一个错误:
password_hash():不推荐使用 password_hash 的“salt”选项”
有什么解决办法吗?
我使用 PHPExcel 来读取和存储 Excel 中的数据,但是每当我从 Excel 文件中读取一行以插入到数据库中,_x000D_或x000D附加到标题列时。
示例:插入时,标题为'Demo',从DB读回后,转换为'Demo_X00D_'或'Demo X00D'。
我试图阻止机器人(可能)将虚假数据提交到我的php注册文件.我正在创建一个使用注册/登录系统的网站,我想添加我能够的电子邮件验证.然而问题是我的webhost只允许x每分钟发送大量电子邮件,如果机器人发送垃圾邮件,这不仅会使我的数据库充满垃圾邮件帐户,而且我也会因违反电子邮件限制而被暂停.
我一直在阅读有关确保表格和CSRF的内容,这是我不熟悉的术语.
这是我目前对CSRF预防的"令牌方法"的理解;
加载包含表单的页面时,创建一个令牌.将令牌存储在SESSIONcookie或cookie中.
当运行处理注册的PHP文件时,它将检查令牌.如果表单中提交的内容不匹配(或者未设置令牌SESSION),则请求是垃圾邮件.
我不明白为什么机器人不能简单地从HTML表单中获取令牌并提交它.我知道它每次都在变化,难道不是每次都抓住它吗?
我假设机器人只是使用CurL或类似的东西提交数据,以绕过实际提交HTML表单的需要,而是直接将数据发送到PHP文件.
我的问题基本上是,为什么以及如何防止机器人提交我的注册表格(或任何表格).
基本上我正在将PHP CodeIgniter的加密方法转换为Python,但我在将PHP的mcrypt_create_iv库转换为Python时遇到困难.
提前致谢.
我在PHP中收到以下错误:
注意:使用未定义的常量CONSTANT
在我定义它的确切行上:
define(CONSTANT, true);
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我定义了它,为什么它会说"Undefined constant"?