javascript - 在 Node.js 程序中运行纯 JavaScript 查询是否存在安全问题?

标签 javascript mysql sql node.js

这似乎是一个愚蠢的问题,但我不明白为什么要在 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/

相关文章:

c# - 卡在具有多个连接的 SQL 查询上

SQL 脚本 - 检查 IP 是否已列入黑名单

javascript - Angularjs 表单在提交时未清除

javascript - Kineticjs - 创建自己的线条样式

javascript - 父级 DOM 元素中子级 DOM 元素的索引

javascript - 加载动态包含的静态资源?

mysql - 为什么需要 'ORDER BY' 才能从 MySQL 连接获得正确的结果?

php - MySQL表中的日期格式

mysql - SQL Server : Select rows with dates that correspond to end of year and calculate price

sql - Azure SQL DB 存在性能问题,100% log/io 的原因是什么?