如何保护用户注入的页面模式?

时间:2014-08-14 09:03:57

标签: php forms security post

我有一个php表单页面(page.php),有3种不同的模式(插入/编辑/查看)

索引页面(index.php)包含3个导航到(page.php)的链接,每个链接将根据当前用户角色显示

index.php

<html>
<body>      
    <div id='main'>
        <a href="page.php?insertMode=true&editMode=true">Insert Student Screen</a> <br>
        <a href="page.php?insertMode=false&editMode=true">Edit Student Screen</a> <br>
        <a href="page.php?insertMode=false&editMode=false">View Student Screen</a> <br>
    </div>  
</body>
</html>

我的问题
没有insertMode和editMode(insertMode=false&editMode=false)的用户 可以更改URL中的值然后再生 他将以他没有角色的模式打开page.php

1 个答案:

答案 0 :(得分:5)

此权限必须存储在数据库中...不在URL中。因此,当您在会话中加载用户时,您也可以加载他的权限,并可以轻松检查他是否有权编辑或插入。

最好的方法是拥有一个表User,一个表Right(包含所有可用权限)和一个关联这些表的表(如UserRights?),其中主键由User和Right的主键组成。然后,用户可以拥有多种权限。

你应该看看这个。

http://www.singingeels.com/Articles/Understanding_SQL_Many_to_Many_Relationships.aspx