Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 安全软件许可证检查/验证_C#_Php_Mysql_Security - Fatal编程技术网

C# 安全软件许可证检查/验证

C# 安全软件许可证检查/验证,c#,php,mysql,security,C#,Php,Mysql,Security,我正在使用MySQL数据库在我的软件中实现一个许可证系统,该数据库具有许可证密钥和唯一的机器ID(MAC代码、CPU代码和其他代码的组合)。我在寻找一种安全的方法来检查用户在C#应用程序的文本框中输入的许可证密钥的有效性。我当前的方法是连接到一个简单的PHP文件,如,并返回一个“VALID”(+机器ID)或“INVALID”字符串。然后,我将访问该文件,并使用WebClient或WebRequest从C应用程序获取返回字符串 显然,使用当前方法是不安全的,因为您可能会将URL重定向到本地主机并伪

我正在使用MySQL数据库在我的软件中实现一个许可证系统,该数据库具有许可证密钥和唯一的机器ID(MAC代码、CPU代码和其他代码的组合)。我在寻找一种安全的方法来检查用户在C#应用程序的文本框中输入的许可证密钥的有效性。我当前的方法是连接到一个简单的PHP文件,如,并返回一个“VALID”(+机器ID)或“INVALID”字符串。然后,我将访问该文件,并使用
WebClient
WebRequest
从C应用程序获取返回字符串


显然,使用当前方法是不安全的,因为您可能会将URL重定向到本地主机并伪造结果。我想我真正的问题是,使用这种方法,我如何使它更安全?我的C#应用程序是否有办法通过签名或其他方式来识别它是否连接到了真正的PHP文件

如果要确保软件不易伪造,许可证服务器必须向软件提供重要信息,而不是简单的“有效/无效”标志。此外,服务器的答案应该以一种不可预测的方式随着时间的推移而改变,否则它几乎不会比以前的标志解决方案更好

请注意,另一方面,您必须让客户意识到,如果您的服务器出现故障,他们的软件将停止工作。我敢打赌,如果你不告诉他们,你会收到一些愤怒的电话和恐吓的诉讼,事情会在<>强> <>强>…准备好保证许可证服务器全天候100%正常运行