首页  >  文章  >  后端开发  >  php我想开放sql语句给用户自己查找数据,数据库不是我服务器上的,会有安全问题吗?

php我想开放sql语句给用户自己查找数据,数据库不是我服务器上的,会有安全问题吗?

WBOY
WBOY原创
2016-06-23 13:09:03677浏览

数据库是客户自己的,可能在别处购买的
 
但是数据处理程序在我服务器上,我的程序处理好数据会远程存到客户的数据库
 
这个对我的服务器危害有多大?
 
场景是这样的:
客户登陆我的管理后台,在一个页面上填写资料表单信息,我不对表单内容进行任何过滤
然后我按照客户填写的数据库信息,把表单信息处理好后 链接客户数据库进行保存
当然,我这里还提供了,客户自己填写sql语句,链接自己的数据库查找自己的数据
 
 问题:
假如客户有恶意,这些存取操作 会对我的程序和服务器造成什么问题?
查询到的数据显示出来的时候会对服务器安全产生问题吗?服务端或者客户端脚本什么的
有什么方法可以增加对我服务器安全的吗?


回复讨论(解决方案)

有的,你可以写正则等进行多重验证

有的,你可以写正则等进行多重验证



主要是预防什么问题?

直接这样开放sql语句的话,难免会有一些人,去输入一些其他的,会对安全造成隐患。可以对sql语句进行限制和过滤,对个别表经行限制。以免造成不必要的信息泄露。

直接这样开放sql语句的话,难免会有一些人,去输入一些其他的,会对安全造成隐患。可以对sql语句进行限制和过滤,对个别表经行限制。以免造成不必要的信息泄露。



因为这个数据库就是客户自己的  个人用的 ,他想查什么都可以,我现在优先考虑对我服务器的影响

会不会有?

用户对自己的数据库有恶意,关你什么事?
用户通过你的服务器去访问他自己的远程服务器,这在实际应用时是有问题的:
1、需要远程服务器对你的服务器 ip 地址授权
2、访问远程服务器要比访问本地服务器慢一个数量级
3、既然用户加他自己的数据库托管给你了,你自然需要承担数据丢失、损坏、泄漏等风险

用户对自己的数据库有恶意,关你什么事?
用户通过你的服务器去访问他自己的远程服务器,这在实际应用时是有问题的:
1、需要远程服务器对你的服务器 ip 地址授权
2、访问远程服务器要比访问本地服务器慢一个数量级
3、既然用户加他自己的数据库托管给你了,你自然需要承担数据丢失、损坏、泄漏等风险



你说的三点我能理解,用户的数据库给我管理了,我可以拿到授权
数据会慢点也是可想的。因为数据是用户自己的,关于数据库会出错的问题我也会先跟用户声明,
大部分用户都会只使用我的基本功能,开放sql查询是针对有要求的客户
所以我现在关心我的程序和服务器的安全问题
关于用户数据 ,因为每个用户的数据库都是独立的,所以自己搞坏自己的数据库我就不去担心了
但是搞坏我的程序,问题就大了,会影响我其它用户的使用

打个比方说我的服务器上装了个 phpMyAdmin ,但是每个使用的用户操作的都是自己的数据库
给客户这样的操作会弄坏我的phpMyAdmin程序吗?
给客户这样的操作会弄坏我的服务器吗?

用户的操作不会弄坏 phpMyAdmin
但是用户可能会通过 phpmyadmin 这种个人版工具去访问别人的数据库,进而造成他人的损失

用户的操作不会弄坏 phpMyAdmin
但是用户可能会通过 phpmyadmin 这种个人版工具去访问别人的数据库,进而造成他人的损失



那就就是说我的服务器和程序都不会有太大的影响了?
用户用这个工具去访问别人的数据库就不考虑了,他要是知道人家的数据库地址和帐号密码,为何不给他操作呢?
就像人家知道你的邮件帐号和密码一样
,要删你的邮件,难道邮件提供方还不给删?

只要能确定我的程序和服务器不会因为公开这些操作而产生问题
,我构思的程序就可以继续开发
如果用户在内容里插入脚本木马病毒,用户自己检索展示内容的时候 执行这些脚本的应该是浏览器终端吧
也就是说写这些问题内容到数据库里,发生问题的是他自己本身

最好别开放。,。。。

没什么危害,因为sql操作的是用户自己的数据库,你只是提供运行php的环境与代码。没什么问题。

没什么危害,因为sql操作的是用户自己的数据库,你只是提供运行php的环境与代码。没什么问题。



要出问题,可能也是他这个页面出而已是吗?
客户的表单在我这里处理,也是用到一些正则运算和字符拼接替换之类的方法,如果这些方法有漏洞那只是针对性这些方法防护一下咯?

你已经拒绝了对潜在威胁的讨论,所以这种只取所需的讨论已经没有必要进行下去了

你已经拒绝了对潜在威胁的讨论,所以这种只取所需的讨论已经没有必要进行下去了



一个网站只有数据库是威胁?
服务器的安全不是一种威胁?

不是说人家可以从服务器脚本的执行漏洞里拿到服务器的来宾用户权限吗?

我懂的不多,所以才想知道多一点儿

检查过滤还是要的,比如一些写文件操作,执行命令什么的。过滤一下。

没什么危害,因为sql操作的是用户自己的数据库,你只是提供运行php的环境与代码。没什么问题。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn