这似乎是一个愚蠢的问题,但我不明白为什么要在 JavaScript 文件中编写 SQL 查询。客户端看不到JavaScript文件吗?所以如果你有这样的东西:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'foo',
password : 'bar',
database : 'db'
});
connection.connect();
connection.query('SELECT * from table', function(err, rows, fields) {
if (!err)
console.log('The query returned ' + rows);
else
console.log('An error occurred.');
});
// rest of js code
这不是安全问题吗?有人请教我。
最佳答案
如果以某种方式故意将其作为浏览器的 JavaScript 发送给客户端,例如在 <script>
中标签,绝对可以看到。它也可以被改变。
如果这是在 Node.js 进程中运行的 Node.js 代码,则客户端无法获取此代码,除非你做一些完全鲁莽的事情,比如将你的应用程序部署在一个“网络安装”的位置,那是你的网络服务器无意中发布的所有文件的目录索引,有人可以点击并浏览,或者他们可能会猜到像 index.js
这样的名称。或 app.js
看看会发生什么。
仅仅因为某些东西是 JavaScript 并不意味着它适合在浏览器中使用,也不意味着它必须在浏览器中运行。
关于javascript - 在 Node.js 程序中运行纯 JavaScript 查询是否存在安全问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38651586/