楼上的这种问题我也遇到过,往往是设计网站界面视图的人没有考虑到所有的需求,提供的数据库查询不够灵活。
确实有可能找到办法去访问这个数据库,不过应该提醒楼主,网站做界面的目的出了美观方便外,就是要限制用户不访问,所以通过非正常途径访问就要承担一定的责任了。
具体方法有:
1.理想方法:得到数据库的地址,例如楼上说的把mdb文件直接下载下来。当然很少有网站用access做数据库的,一般情况是需要知道数据库IP地顷好址,数据库类型,库名,用户名和密码,然后通过toad等客户端软件来访问。
既然是理想方法,这种情况不太可能发生,除非你是内部人士,可以知道很多信息。因为春乎山通常数据库服务器会放在局域网上,不能被外部访问到。
2.实际方法:采用sql注入等黑客技术。SQL注入是最简单的黑客技术了,不过由于简单威力也不会很大,要求网站设计对于安全的考虑不周,存在漏洞才行。
由于网站设计不周扒中,就会在出错或者某些情况下暴露出数据库表结构的一些内幕,这样就可以写出你想要的SQL命令,把它插入到Web表单递交,或者页面请求的查询字符串中,最终达到欺骗服务器执行的目的。
‘贰’ 是数据库访问结构上,有两种,一种是直接客户端访问数据库,一种是客户端通过服务端的应用
直接客户端访问数据库的方式,称为两层数据库应用,数据处理逻辑、用户交互合二为一,客户端编程既要清楚数据库的数据结构,又要考虑怎么与用户交互,编程复杂,不便于软件的团队开发,同时数据库的结构暴露在客户端,不利于保密。而且当客户需求改变时,数据库结构改变了,客户端程序都得重写,不便于数据库应用功能的扩展。
客户端通过服务端的应用访问数据库的方式,称为多层数据库应用,通常为三层,即所谓的表现层、业务层和数据层。表现层(也就是客户端)用于和用户交互,提供用户界面及操作导航服务;业务层用于业务处理,提供商业逻辑等各种约束;数据层用于数据的集成存储。
有点复杂。简单一点讲,三层数据库应用就象我们用的电脑,应用程序相当于客户端,API相当于业务层,操作系统底层的东西相当于数据层。这样,你开发应用程序(客户端)只要知道API怎么用就可以了,不需要知道操作系统底层的东西。操作系统改了(从WIN98、到XP、到WIN7,从32位到64位),只要API接口没变,你的应用程序就还可以运行。你的应用程序要增加功能,API接口不需要改,操作系统底层也不需要改。这样,才可能有不同的人开发出各种各样的应用程序。你想想,如果没有API,每个人开发的应用程序都直接与操作系统底层打交道,操作系统一变,这些应用程序还能用么?多层数据库应用的道理就是这样。
‘叁’ 关于前端连接数据库的问题
前端的JS自身可能不能直接连数据库,后端的JS(如 Node.js )是可以连数据库的;
如果你想前端JS查数据库,可以用JS发一个ajax请后端,后端查询完数据库后,把结果封装成JSON返回,前端的AJAX回调函数中取出JSON对象,把内容更新到网页上。
示例:
$.ajax({
url:"./ajaxdata/findtable.do",
method:'POST',
dataType:'json',
data:{
dTyppe:'findid',
ID:'001',
},
success:function(data){
//data是返回的对象,可以data中取出数据
//输出内容
}
});
‘肆’ 为什么前端不能直接连接数据库,一定要通过后台
为了数据安全 前端页面可以改动 如果前端直接连数据库 那同行也得只需要修改页面上的sql语句就可以读取、修改数据库的全部信息
而后台作为执行程序,是会部署到服务器上运行,用户是获取不到的,这就增大了入侵的难度