Tag: 安全性

如果我在Docker容器中运行Node.js,是否需要反向代理?

我已经阅读了一些推荐在Node.js应用程序之前使用反向代理(比如nginx )的文章(就像那个: 在Node.JS之前的反向代理的优点 )。 比起运行Node.js本身并暴露它更好(至less在安全性方面)。 但是,在Docker容器中运行Node.JS应用程序应该可以防止安全问题(因为应用程序在容器中运行,并与主机系统隔离)。 所以,我的问题是:在Docker容器中运行Node.js应用程序时使用反向代理是否有好处? 如果是的话,它如何改善我的申请?

仅向用户提供GRANT EXECUTE'过程'(无select或插入权限)

我想知道是否有可能授予EXECUTE权限的用户没有授予的过程上运行的表上的SELECT , INSERT等权限? 将它用于webapp的login表。 MySQL正在Docker容器中运行。 用于创build过程的SQL作为docker构build过程的一部分进行复制(运行时,sql在entrypoint.sh中使用)。 运行容器(-e标志)时创buildLogin_db。 我想从下面删除GRANT SELECT行,所以无论发生什么事情,webapp服务器都不能运行SELECT查询 – 比如执行SELECT * FROM logins 。 CREATE USER 'logins'@'172.24.0.7' IDENTIFIED BY 'some-password'; GRANT SELECT, INSERT, UPDATE on logins_db.login TO 'logins'@'172.24.0.7'; GRANT EXECUTE ON PROCEDURE logins_db.sp_login16 TO 'logins'@'172.24.0.7'; FLUSH PRIVILEGES; 这不能解决它 – 因为表所有者会暴露相同的权限: 由于表权限,执行存储的proc失败并执行GRANT EXECUTE 这可能可以解释为什么我不能,但表名有点奇怪(MySQL新手 – 我的印象是mysql.proc是一个系统表,所以不知道它是否适用): 如何将特定存储过程的执行权授予用户 难道是根在创build过程时没有SELECT权限,所以login用户无法运行它? (因为Docker MySQL运行的是entrypoint.sh,然后是环境variables)? 程序代码在这里(我知道,不是最优雅的) – 我可以授予,然后REVOKE权限的logins用户在此,考虑到DEFINER是根? CREATE DEFINER=`root`@`localhost` […]