-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add support for getting IP addr by scripts #511
Conversation
需要考虑,用户刚安装了ddns-go没填写配置,此时可公网访问,被别人执行了恶意命令 |
已添加 |
if runtime.GOOS == "windows" { | ||
execCmd = exec.Command("powershell", "-Command", cmd) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
因为在windows上采用 powershell 脚本,所以无法直接支持 windows XP(需要用户自行安装)。但采用 powershell 可以让用户使用与 Linux 类似的管道来流式处理数据,相对于 cmd 也更加强大。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
这个可以
也有可能被别人执行了恶意命令。比如:非法用户可以设置静止公网访问/设置密码,然后在设置恶意命令。 |
或者: |
仅允许通过内网设置命令,或在内网设置过命令以后(即保存的配置文件中,命令非空)才允许通过公网设置命令。你觉得哪种更合适些。
对于这个建议,或者修改成,如果没有配置文件,仅允许用户在5分钟内保存过一次配置文件。如果超过了 5 分钟,用户应选择重启服务。 要尽可能地保证安全的话,仅允许通过内网设置命令是最好的。因为在启用公网的情况下,若用户没有通过 Nginx 或其他的 web 服务器做 https 反代,理论上是会有相对较大的用户名密码泄漏的可能。但这么做对部分用户来说,可能会有比较高的门槛,得用 ssh 之类的做跳板。 |
几种方式都行,优先考虑保证安全性吧,毕竟能任意执行shell挺危险的 |
还是要考虑一点,就是,如果允许在外网直接设置 cmd,那用户可能会习惯性地认为,他可以在随后的时间中任意修改 cmd。而用户若设置了其他的内容,那可能也会认为,他可以在后续的修改中设置 cmd 命令。 5分钟可能是短了些,可否增加到 10 分钟,对于所有的配置,允许用户在 10 分钟内保存过配置后,在后续的修改中添加命令。 要是要保证尽可能的安全性的话,可能还是禁用cmd的公网修改会比较好。一般来说,ddns的配置是长期不会修改的。而要使用 cmd 来获取 IP,也应该给用户提高一定的门槛,以避免命令的错误使用。不知道这么考虑是否合理 |
有可能有些人也会要在外网配置cmd获取ip,限制死了也不好。 |
将第一次保存的时限修改为 10 分钟,后续不对任意内容的修改做更多的限制? 这样逻辑相对简单一点 |
可以。你觉得此方案如何? |
可以吧,考虑在 readme、release note 中添加提高安全性的说明(使用反向代理,使用 https 来加密公网访问)? |
可以。好像除了运营商,其它途径也不容易被拦截流量 |
是的,我添加了一行建议 |
跑了一下,没啥问题了。thanks |
想起一个问题,也有在公司用ddns或者内网被入侵了,别人可以扫描内网,来执行非法的cmd。这个看有没有好的处理方案 解决方案: |
那也需同时限制对帐号密码的添加,感觉还得再考虑一下。 |
修改了cmd才验证帐号密码是否在启动时已经存在/启动时间在10分钟内,没修改cmd不要求。 |
修改CMD一般就不是常规的脚本自动化处理了,可能会尝试添加用户名密码,来绕过禁止修改CMD的限制,要通过这个方法来限制的话,是不是把用户名密码的修改限制也加上会好点 |
即使非法设置了用户名和密码,也要重启了才能在次修改cmd,变量在启动时就固定了 |
嗯嗯,没仔细看,这样也可以。 |
Fixes: #451