怎么样控制editdocument 和deletedocument攻击啊?

dreamofprogram 2004-09-03 10:13:14
在OA开发中遇到这种情况:
某些用户对一个文档有“作者”的权限并且能够对文档中某些域进行修改,所以这些用户具有“删除”权限,但是这个文档又不能被删除。现在我是在界面上通过隐藏“删除”按钮来避免,但是如果用户知道url命令,就可以用 deletedocument 和 editdocument来删除和编辑所有的域的内容。

请问有什么好的解决办法吗????谢谢
...全文
151 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjunhua 2004-09-03
  • 打赏
  • 举报
回复
你这个流程,可以说是有比较大弊端的

发起者可以删除文档,那也应该是在处理人没有任何处理的情况下才可以,而不是任何情况下。

要不然处理者处理了,发起者又删除,那不是乱来了啊

所以这种流程上面要审批或者处理等等,不应该开放删除权限,要不然,你通知了审批人或者处理去处理某个单子,但是当他们进去要处理的时候,却发觉被发起者删除了,那不是没有流程可言了吗?
xn_nona 2004-09-03
  • 打赏
  • 举报
回复
关注中。。。。。。。
dreamofprogram 2004-09-03
  • 打赏
  • 举报
回复
数据库的ACl -default- 为作者权限,并且可以创建和删除文档。
之所以这样设置,是因为有这样的需求:
自己创建的文档可以自己编辑删除,也允许某些人(不是将文档弄成编辑状态)通过在后台的代理在文档的意见域中加入意见,或者更改某些标志域。
就是说某些人实际上就有编辑权限了。
曾经想过将具有创建权限的人和其它可以修改某些域的人分开,就可以按“xjunhua(沉思的森林) ”的方法解决了,但是实际上这2类人可能会重叠。就是说,某个用户user可能是文档A的创建者,所以他可以删除文档A,也可能是文档B的处理者(修改某些域值),因为user在acl表里有创建文档和删除文档权限所以,所以他同时也可以删除文档B,这就跟原来的user只能对文档B某些域修改的想法矛盾了。



实际的需求是这样的:
在bs下实现的是一个流程审批功能,具有发起流程权限的人发起流程(是一个文档),在这个流程中各步骤处理者可以修改流程文档中的某些标志域和信息域(其它的域不能修改)使得流程可以一步步往下走。流程中各步骤的处理者不应该有删除和编辑整个文档的权限,只能修改某些域值。流程的发起人可以编辑和删除自己发起的流程文档。

现在的权限设置:
Acl中 default的默认权限为作者,能创建和删除文档;
各个步骤的处理者通过新打开的页面将输入通过代理写入流程文档中,相当于只在界面上做了控制

遇到的权限问题:
各个步骤的处理者既然可以修改某些域就可以编辑整个文档了,怎样才能使他们“只有”修改某些域的权限。

希望:
也许我的设计存在问题??如果高手们有别的好的解决方案请赐教?
fengyi999 2004-09-03
  • 打赏
  • 举报
回复
这个没有很好的办法!
1。不然就严格控制权限(读者域,作者域)存取控制级别中,删除文档不要勾上!
2。 去掉IE地址栏,不让人操作地址栏! 同时屏蔽一些相关快捷按钮

function document.onkeydown()
{
var k = window.event.keyCode;

if (k==122) //屏蔽F11
{
window.event.keyCode = 0;
window.event.returnValue= false;
}

if (window.event.ctrlKey && k == 78) //屏蔽 Ctrl+n
window.event.returnValue= false;
if (event.shiftKey && k==121) //屏蔽 shift+F10
window.event.returnValue= false;


}

xjunhua 2004-09-03
  • 打赏
  • 举报
回复
能编辑跟删除有什么关系呢,你给作者权限的时候,可以不给删除权限的啊

没有删除权限自然不能删除文档了,即使是管理员也一样
虎头是我 2004-09-03
  • 打赏
  • 举报
回复
1、不给任何人物理删除文档的权限
2、只能点击按钮,执行代理,进行逻辑删除,所谓逻辑删除,就是做个删除标记,比如改表单名,这样视图不显示,也打不开文档,因为不存在表单
3、每天晚上,定时代理,让服务器清除删除文档,或转移文档

好处是,给删除者,有个后悔的机会,
ibm123 2004-09-03
  • 打赏
  • 举报
回复
楼上的有道理,我个人认为除管理员外不能有任何人删除文档的限制。这样就首先避免了删除文档,但用户要求删除权限。你可以设置文档的删除域,用户只有特定的情况才能赋此域,即当前处理人是作者本人,这样实际上只是在视图中过滤掉了具有删除域的文档,再后台代理定期最终删除文档,这样还可以给删除者一个后悔的机会,一举多得。

536

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 Exchange Server
社区管理员
  • 消息协作社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧