SSL支持
默认情况下,Drupal通过HTTP使用纯文本来处理用户登录。然而,如果你的web服务器支持HTTPS的话,那么Drupal也可以通过HTTPS来处理登录。此时不需要做任何修改。
独立的PHP
偶尔,你可能需要编写一个独立的.php文件来取代将代码放到Drupal的模块中。当你这样做时,你需要仔细的考虑安全性。假如,当你正在测试你的网站时,你快速的编写了一些有点垃圾的代码用来向数据库中插入一些用户,这样你就可以使用多用户来测试站点性能了。假定你将其命名为testing.php,并将其放到了Drupal站点的根目录下,挨着index.php。接着,你把它放到了浏览器的收藏夹中了,当你每次想插入一些新用户时,你就可以选择收藏夹中的该链接了:
<?php
/**
* This script generates users for testing purposes.
*/
// These lines are all that is needed to have full
// access to Drupal's functionality.
include_once 'includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
db_query('DELETE FROM {users} WHERE uid > 1'); // Whoa!
for ($i = 2; $i <= 5000; $i++) {
$name = md5($i);
$pass = md5(user_password());
$mail = $name .'@localhost';
$status = 1;
db_query("INSERT INTO {users} (name, pass, mail, status, created, access)
VALUES ('%s', '%s', '%s', %d, %d, %d)", $name, $pass, $mail, $status,
time(), time());
}
print t('Users have been created.');
这对于测试很有用,如果你一不小心把这个脚本放到了你真实的站点上,那么将会发生什么呢?任何发现了这个脚本的人都可以使用一个简单的请求来删除你数据库中的用户数据。这就是为什么安全检查这么重要,即便是对于一次性的脚本来说,也需要包含它,如下所示:
<?php
/**
* This script generates users for testing purposes.
*/
// These lines are all that is needed to have full
// access to Drupal's functionality.
include_once 'includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
// Security check; only superuser may execute this.
if ($user->uid != 1) {
print t('Not authorized.');
exit();
}
db_query('DELETE FROM {users} WHERE uid > 1'); // Whoa!
for ($i = 2; $i <= 5000; $i++) {
$name = md5($i);
$pass = md5(user_password());
$mail = $name .'@localhost';
$status = 1;
db_query("INSERT INTO {users} (name, pass, mail, status, created, access)
VALUES ('%s', '%s', '%s', %d, %d, %d)", $name, $pass, $mail, $status, time(),
time());
}
print t('Users have been created.');
通过这个例子领会到以下两点:
1.即便是在快速编写的脚本中也要包含安全检查,你可以从一个包含必要代码的模板做起。
2.记住在部署中的重要一步,就是删除或者禁用测试代码。