我已经用C#编写了一个程序,我希望每次事件发生时,该程序都会在MySQL数据库表中增加一个整数。但我不想从C#应用程序直接连接数据库,它是一个开源程序,所以我需要用用户名和密码等做一些事情。
所以我想也许我可以创建一个PHP脚本,每次请求时都会连接并递增该数字。然后我可以使用C#WebClient来调用该PHP脚本(根据它的运行方式返回成功或错误字符串。)
但问题是,用户可能只是进入源代码,找到该网址并滥用它,因此数字不正确。
所以我所期待的是一种安全的,而不是太高级的方式来保护我的网络服务,即使它是开源的。
任何人都有一个想法,包括通过查看源代码使用户无法/非常难以滥用? :)
答案 0 :(得分:1)
您无法实际连接而无法更改数据。作为一项要求并没有多大意义。
编辑:我误解了这个问题,但现在我明白了......我不知道一种真正安全的方式。由于他们有源,因此没有真正的方法来混淆或加密无法破坏的数据。他们总是可以调试应用程序,一步一步,直到即将进行Web调用,并获取URL。
答案 1 :(得分:0)
在任何情况下 - 无论是直接连接还是对PHP脚本的请求 - 您都需要使用某种身份验证系统来避免滥用。如果您不想在源代码中硬编码用户/密码组合,则有一个通用的解决方案:将该数据移动到外部配置文件,为该文件提供模板并将其添加到存储库。
例如,您可以将文件命名为parameters.ini.dist
,如下所示:
user = dummy-username
password = dummy-password
这是你添加到仓库的文件。
任何想要使用您的程序的人都会将parameters.ini.dist
复制到parameters.ini
并将虚拟值替换为真实值。该文件是您的程序读取的文件,应该在您的仓库中忽略。