我知道这已被问过数十亿次,但我对于编码的安全性我是超级偏执/强迫症.我正在做一个小项目.会话数据仅包含:
user_id 1
user_name MyUsername
logged_in true
csrf_token 87cc51ee94178df79cccce2aebc45d53
这是我的代码.它是否足够安全,可以在小型CMS上使用?
session_start();
ini_set('session.cookie_httponly', 'On');
ini_set('session.cookie_secure', 'On');
ini_set('session.use_cookies', 'On');
ini_set('session.use_only_cookies', 'On');
$rand = rand(1, 10);
if ($rand != 1 || $rand != 3 || $rand != 5)
session_regenerate_id();
$user_ip = md5($_SERVER['REMOTE_ADDR']);
$user_agent = md5($_SERVER['HTTP_USER_AGENT']);
if (isset($_SESSION['user_ip'], $_SESSION['user_agent'])) {
$session_user_ip = $_SESSION['user_ip'];
$session_user_agent = $_SESSION['user_agent'];
if ($session_user_ip != $user_ip || $session_user_agent != $user_agent) {
unset($_SESSION);
session_destroy();
die('Error');
}
} else {
$_SESSION['user_ip'] = $user_ip;
$_SESSION['user_agent'] = $user_agent;
}
Run Code Online (Sandbox Code Playgroud)
然后调用会话:
$_SESSION['user_id'] = …Run Code Online (Sandbox Code Playgroud) 注意:我不是在谈论删除
index.php- 我的意思是index- 方法名称.
我当前的网址如下所示:
www.mysite.com/view-topic/index/my-topic
Run Code Online (Sandbox Code Playgroud)
这就是我想要的样子:
wwww.mysite.com/view-topic/my-topic
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
提前致谢!
我怎样才能解决这个问题?
警告:ini_set()[function.ini-set]:会话处于活动状态.您目前无法在第3行的C:\ xampp\htdocs****** .php中更改会话模块的ini设置
我已经尝试过使用session_destroy();但仍然遇到错误.
谢谢.
我的错误:
( ! ) Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\PDO\index.php on line 13
我的代码:
<?php
$config['db'] = array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'learnpdo'
);
$db = new PDO('mysql:host='.$config['db']['host'].';dbname'.$config['db']['dbname'], $config['db']['username'], $config['db']['password']);
$query = $db->query("SELECT articles . title FROM articles");
while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
echo $row['title'];
}
Run Code Online (Sandbox Code Playgroud)
我知道有很多这样的问题,但没有一个答案似乎有效.
谢谢
编辑:
由于以下所有人,以上是固定的.:)现在我收到另一个错误:
Notice: Undefined index: id in C:\wamp\www\PDO\index.php on line 7
这是我的数据库:
这是我的代码:
$db = new PDO('mysql:host=localhost;dbname=learnpdo;charset=UTF-8', …Run Code Online (Sandbox Code Playgroud) 我试图转换这样的东西:
@Username
成:
<a href="Username">Username</a>
虽然无法在任何地方找到RegEx.有什么建议?
谢谢!
php ×5
session ×2
codeigniter ×1
controller ×1
database ×1
fatal-error ×1
fetch ×1
ini-set ×1
pdo ×1
regex ×1
routing ×1
security ×1
suhosin ×1
url ×1