我正在使用Code Igniter中的工作库进行人员添加,编辑和审阅文档。文档信息存储在一个MySQL表有点像这样:创建数据库条目的安全锚点引用
CREATE TABLE `document` (
`owner` varchar(15) NOT NULL,
`id` smallint(6) NOT NULL AUTO_INCREMENT,
`pdf` varchar(250) NOT NULL,
`title` varchar(250) NOT NULL,
`permission` tinyint(1) NOT NULL DEFAULT '1',
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`,`pdf`),
) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8
的pdf
字段是文件的名称。结合id
他们弥补了表的主键。
在应用程序的前端部分,用户经常会看到并使用这些文档的列表,我想将链接附加到它们。想象,这样的链路可以这样创建的:
<a href='some_controller/some_method?pdf=<?php echo $document->handle; ?>'>Link</a>
凡假定$document
对象的handle
属性是一个唯一的标识符,其方法some_method
用于加载该用户点击该文档。
什么是最安全的数据库字段?我认为id
字段,但其auto_increment
似乎不安全,并允许人们摆弄HTML以获取禁止的文档。我应该添加一个随机的数字或字符串哈希另一个唯一的列?
服务的文件之前,先检查用户的权限。 – chris85