两招彻底杜绝网站Access数据库被下载

Access数据库在中小型WEB项目应用广泛,其安全问题不容忽视,尤其是防止文件被直接下载。网上流传的多数防范方法无效,Access加密机制也脆弱易破解。文中给出两个简单方法,一是本机调试时将mdb文件放WEB主目录外,二是虚拟主机下通过文件合并拷贝生成安全数据库文件。

  目前Access数据库在中小型WEB项目中应用非常广泛,Access数据库的安全问题不容忽视。其中“防止Access数据库文件被直接下载”是核心问题。现在网上流传着N种“防止Access数据库文件被直接下载”的方法,但大多数都是错误的,例如:给mdb文件取个复杂的文件名、在mdb文件加上“#”、把后缀名改成asp、asa等等。

  对于以上的几种防范方法,只要知道mdb文件的URL,用下载工具FlashGet等就能直接下载下来。还有人说可以在Access里设置密码,即使黑客得到数据库也没用。其实Access数据库的加密机制是非常脆弱的,加密后数据库系统通过将用户输入的密码与某一固定密钥进行"异或"来形成一个加密串,并将其存储在*.mdb文件从地址"&H42"开始的区域内。用程序可以轻松的写出破解代码.网上早已有这样的程序了。

  现在我给大家讲一下我的两个非常简单的方法:

1、如果你是本机调试,就是说你能控制网站服务器的IIS,那么很简单,把mdb文件放到WEB主目录的外面。例如,你的WEB目录在D:/WebSite目录下,那么就把数据库保存在D:/根目录下。攻击者再有本事也无法下载。

2、如果你是网上申请的虚拟主机,先把数据库“db.mdb”改成“db.asp”,在写一个文本文件1.txt,内容如下:
<%response.redirect"err.asp" %>
再写一个err.asp文件:
<%response.write"禁止下载数据库!" %>
然后在cmd中输入:
copy db.asp /b + 1.txt/a db2.asp
这条命令的意思是文件合并拷贝,让db.asp以二进制方式、1.txt以ASCII方式拷贝,合成文件为db2.asp。生成的db2.asp就是安全的数据库文件了。无论是用IE还是FlashGet等下载工具均无法下载,只能下载到err.asp。



### Java中因密码错误导致的MySQL数据库连接问题解决方案 当遇到 `java.sql.SQLException: Access denied for user 'root'@'localhost'` 错误时,通常表明应用程序尝试通过 JDBC 或其他数据源管理工具(如 HikariCP)连接到 MySQL 数据库时使用的用户名或密码不正确。以下是针对该问题的具体分析和解决办法。 #### 1. 验证数据库用户的密码 确认用于连接数据库的用户 `'root'@'localhost'` 是否具有正确的密码。如果不确定当前密码或者从未设置过密码,则可以通过以下 SQL 命令重置密码: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; FLUSH PRIVILEGES; ``` 执行完成后重启 MySQL 服务以使更改生效: ```bash sudo systemctl restart mysql ``` 此操作适用于忘记密码的情况[^2]。 #### 2. 检查配置文件中的数据库凭证 确保项目的数据库配置文件(例如 `db.properties` 文件或其他形式的配置文件)中指定的用户名和密码与实际数据库一致。常见的配置项可能如下所示: ```properties jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/your_database_name?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC jdbc.username=root jdbc.password=你的正确密码 ``` 注意:驱动程序名称应为 `com.mysql.cj.jdbc.Driver` 而非旧版的 `com.mysql.jdbc.Driver`,因为后者已被弃用并可能导致兼容性问题[^3]。 #### 3. 更新HikariCP的数据源配置 对于使用 HikariCP 的场景,需验证其配置参数是否匹配实际情况。典型的 Spring Boot 中基于 HikariCP 的配置可以写成这样: ```yaml spring.datasource.hikari.dataSourceClassName=com.mysql.cj.jdbc.MysqlDataSource spring.datasource.hikari.maximum-pool-size=10 spring.datasource.hikari.minimum-idle=5 spring.datasource.hikari.idle-timeout=30000 spring.datasource.hikari.connection-test-query=SELECT 1 spring.datasource.hikari.username=root spring.datasource.hikari.password=你的正确密码 spring.datasource.hikari.jdbc-url=jdbc:mysql://localhost:3306/your_database_name?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC ``` 以上 YAML 格式的配置片段展示了如何适配最新的 MySQL Connector/J 和时间区域选项[^3]。 #### 4. 测试独立连接 为了排除代码逻辑之外的因素干扰,在终端直接测试能否成功建立连接也是一种有效手段。命令行方式如下: ```bash mysql -u root -p -h localhost Enter password: ``` 输入相应密码后看是否能够正常进入 MySQL 控制台。如果仍然无法登录则进一步排查网络权限等问题[^1]。 --- ### 总结 综上所述,要彻底解决问题需要依次完成以下几个方面的工作:一是校正应用端所提供的认证资料;二是必要时候调整目标主机上的账户属性直至两者完全吻合为止。只有这样才能从根本上杜绝此类异常的发生。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值