我正在开发基于网络的CRM系统,该系统在扩展其功能方面的能力有限。 为了扩展功能,我在同一台服务器上安装了PHP的apache,从php代码开始,我可以访问CRM数据库。 我可以通过在CRM系统中添加iframe来运行apache服务的页面,从URL中获取ID并使用以下javascript将其传递给iframe:
<div id="mydiv">
<script>
function getUrlParam( name, url ) {
if (!url) url = location.href;
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( url );
return results == null ? null : results[1];
}
console.log(window.location.href)
var iframe = document.createElement('iframe');
var html = 'http://192.168.0.2:8000/Map/' + getUrlParam('ID',window.location.href);
iframe.width = 800
iframe.height = 800
iframe.frameBorder = "0"
iframe.src =encodeURI(html);
document.getElementById("mydiv").appendChild(iframe);
console.log('iframe.contentWindow =', iframe.contentWindow);
</script>
</div>
这一切都运行良好,但这个aprouch会出现安全问题:要在CRM系统中查看任何内容,您需要登录。 如果有人知道apache服务器的url / port,他们可以在不登录的情况下看到他们喜欢的内容。
如果不依靠&#34;通过默默无闻的安全性来克服这个安全问题,最好的方法是什么? ?有没有办法检查iframe源是否仅在它确实是iframe时加载,还是可以从父站点检查cookie? 我无法访问CRM端登录用户的用户名/密码。
CRM用户只会使用chrome或firefox。