我正在研究控制和监控数据离开Salesforce组织的可能方法 . 目前,解决方案似乎分为两大类:
-
锁定使用配置文件的用户的功能 . 例如 . 防止某些类型的用户拥有报告或导出权限
-
在工作机器上安装了第三方监控软件,用于监控和控制与salesforce.com的交互
这些都不符合我们的要求 . 我们的问题是需要能够运行和提取报告但是从某个网吧这样做的用户 . 我们也不能将它们限制在工作机器上,因为很多人都是旅行销售人员 .
此外,salesforce表示他们不会提供任何类型的报告,说明已运行的报告或导出的数据 .
我正在调查第三种可能性,它将某些监控JS代码固定到salesforce.com本身 . 如果可能的话,我想在salesforce Report选项卡(以及可以导出数据的任何其他页面)上嵌入JS,并拦截点击“运行报告”或“导出”按钮 . 我将使用用户名,报告参数,时间等来调用日志Web服务 .
有谁知道是否可以在salesforce页面上嵌入自定义JS?或者上面的任何更简洁的解决方案?
谢谢你的帮助
射线
3 回答
Salesforce非常保护他们的代码库,甚至可以在一个完全不同的域上运行自定义Apex代码,以便他们可以使用跨域脚本来阻止我们调整他们的页面:)所以除非是一个man-in-the-使用midddle SSL攻击没有办法在他们的代码中注入一些东西 .
也许是油脂猴子剧本?但用户可以删除它们或只使用其他浏览器 .
除了安全性之外,我不认为你有一个理想的解决方案,无论是配置文件(对象级别)还是共享(行级别) . 以这种方式思考,热衷于窃取数据的人可以抓取参与报告的行的详细页面的HTML,从HTML获取原始数据并在外部运行报告 . 也许强迫旅行销售人员使用RDP到办公室的机器?
另一种选择是制作报告信息visualforce页面的一部分(写出收集数据所需的SOQL和apex,然后编写VF标记以显示它),然后记录和/或限制谁可以访问这些页面以及何时(包括检查源IP) . 将更复杂的报告转移到这种格式显然有一些认真的努力,但这是我能想到满足您的要求的唯一方法 .
这也允许你不包括任何类型的导出选项,尽管他们当然可以保存页面的原始HTML,如果他们真的想要的话 .
要在标准SFDC页面中嵌入javascript,请转到“您的姓名”=>“设置”=>“自定义”=>“主页”=>“主页组件”=>单击“消息和警报”旁边的编辑链接 . 在“编辑消息和警报”页面中,有一个文本区域,您可以粘贴几乎每个salesforce页面上都会出现的javascript代码 .
这样做有几点注意事项
不要在代码中放置空行,因为系统会在其中添加一个p html标记 .
使用对Salesforce页面的绝对引用,因为托管包具有不同的url结构 .
我不确定销售人员会持续多长时间,但它目前有效 .
有关详细信息,请参阅http://sfdc.arrowpointe.com/2011/11/18/email-autocomplete-using-jquery/
这样做的方式略有不同https://salesforce.stackexchange.com/questions/482/how-can-i-execute-javascript-on-a-sfdc-standard-detail-page