什么是最好的方式告诉我的服务器端脚本,提交的表单或数据来自信任的来源或从我的网站? 上午服务器端的数据已经进行了很多审查,并认为我可以在这个多与客户方太网站黑客预防/最小化
AM一个PHP/MySQL的开发商
什么是最好的方式告诉我的服务器端脚本,提交的表单或数据来自信任的来源或从我的网站? 上午服务器端的数据已经进行了很多审查,并认为我可以在这个多与客户方太网站黑客预防/最小化
AM一个PHP/MySQL的开发商
伙计们,感谢您的帮助,我欣赏这一切。通常我在谈论客户端安全性,即确保来自客户端的数据来自原始来源。
一般SSL可能只是已经得到了答案,经过大量的浏览,我发现两个网站,解决了这个问题,在一定程度上:aSSL和Jquery implementation
这样,我的数据被固定到一个层面说90 %
你觉得呢?
要找出谁发布的数据使用的用户的IP改善:
$ip = $_SERVER['REMOTE_ADDR'];
echo "<b>IP Address= $ip</b>";
根据IP,您可以决定用户是否信任。 (例如,如果你想只信任的IP地址的特殊范围)
每当我读张贴变量是在PHP我用这样的过滤它们:
function check_string($string) {
// allowed chars: a-z,A-Z,0-9,-,_
if((preg_match('/^[a-zA-Z0-9\-\_]+$/',$string)))
return true;
return false;
}
它会过滤所有字符这不是az,AZ,0-9, - 或_并且增强了网站的安全性。如果你已经访问到Web服务器:
禁用服务器横幅(其中显示操作系统和Apache的版本为例),如果你有机会到Web服务器的配置。这些信息可能对黑客非常有用,并且您希望禁用可能以任何方式帮助他们的所有内容;)
阻止目录列表(例如使用.htaccess文件)。一个简单的例子是:
选项所有-Indexes
与一个受限用户帐户运行网络服务器(最好是执行chroot用户也一样)在MySQL查询
使用mysql_real_escape_string并在html文章中使用htmlentities。
例子:
错误:
<?php
if($_SERVER['REQUEST_METHOD'] == "post"){
echo $_POST['hai'];
}
?>
权:
<?php
if($_SERVER['REQUEST_METHOD'] == "post"){
echo htmlentities($_POST['hai']);
}
?>
$ _ POST还可以通过$ _GET
错误:
<?php
$query = "SELECT * FROM table WHERE msg = '". $_GET['hai'] ."'";
?>
权:
<?php
$query = "SELECT * FROM table WHERE msg = '". mysql_real_escape_string($_GET['hai']) ."'";
?>
而且不要忘记,当你得到的东西出来的MySQL表的使用ヶ辆...
问候
这似乎没有解决“提交的表单或数据是来自可信来源还是来自我的网站”的问题。专业提示,但。 – bzlm 2011-02-13 19:59:20
我一直使用的处理这些问题的类,它将处理服务器/客户端,并确保任何输入都来自服务器本身。它会验证并确保它没有被赋予特殊字符。
让我知道是否有帮助,但前一阵子帮助了我。 :)
我认为最好的选择是添加一个数字签名的请求,即使是一个简单的。
例如,您的站点或受信任的源添加计算它的请求的SHA校验和后,添加一个秘密“盐”(不发送)。服务器获取数据,添加相同的盐并计算SHA签名,如果SHA匹配,则源知道该秘密并且您可以信任该内容。
我想你的问题意味着CSRF ...只需生成并添加验证令牌。
许多框架可以为你管理这些。
可能重复的[PHP表单令牌](http://stackoverflow.com/questions/2034281/php-form-tokens) – bzlm 2011-02-13 19:34:05
伙计我的问题是“在服务器接收到的恶意天气数据来自有效来源”而不是“检查数据的正确形式” – Smith 2011-02-14 09:13:44