检查请求是否来自Windows应用程序

时间:2013-03-25 14:52:54

标签: c# php

我有一个生成XML文件的.php文件。我在我的C#应用​​程序中使用此XML,如果请求来自Windows应用程序,我想在此.php文件中检查,因为我不希望用户在浏览器中查看此页面。请帮我。祝你有愉快的一天。

4 个答案:

答案 0 :(得分:1)

如何为获取该xml文件添加一些关键字?制作一些密码来获取xml,并请求像myxml.php这样的php文件?key = mykeywordishere,关键字可以用一些md5进行编码,这很重要。

答案 1 :(得分:1)

一种简单的方法可能是使用某个密钥作为密钥参数调用php脚本。

www.myweb.com/myfunction.php?pass=secretPassword

此密钥将在#C应用程序的调用中进行编码。

然后您可以检查密码是否是您期望的密码:

//hardcoded hashed pass with sha1, for example.
$myHashedPass = '40bd001563085fc35165329ea1ff5c5ecbdbbeef';

if(sha1($_GET['pass']) != $myHashedPass){
    die();
}

答案 2 :(得分:0)

您可以在请求的标头中使用特殊用户代理,因此您可以检查用户代理是“我的C#应用​​程序”。如果不是,则您的申请不会发出请求。

有关如何更改用户代理的信息,请参阅HttpRequest.UserAgent属性。在PHP中,使用它来获取用户代理字符串:

$userAgent = $_SERVER['HTTP_USER_AGENT'];

答案 3 :(得分:0)

您应该考虑使用自定义用户代理字符串,并将内容类型设置为类似"application/octet-stream".

的内容

或者在C#应用程序中使用硬编码密码。

如果安全性很重要,您还应该使用 HTTPS ,因为所有以前的信息都可以由对Wireshark或任何类似程序有基本了解的人检索。