php2connect、加密和解决方案
我用过这个脚本,但它不再适合我了。我必须访问mysite.com/serv.php来调用脚本。因此,首先是脚本:php2connect、加密和解决方案,php,Php,我用过这个脚本,但它不再适合我了。我必须访问mysite.com/serv.php来调用脚本。因此,首先是脚本: $ip = "ip"; $user = "user"; $pass = "password"; if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist"); if(!($con = ssh2_connect($ip, 22))){ echo "<font color
$ip = "ip";
$user = "user";
$pass = "password";
if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
if(!($con = ssh2_connect($ip, 22))){
echo "<font color='red'>fail: unable to establish connection</font>\n";
} else {
if(!ssh2_auth_password($con, $user, $pass)) {
echo "fail: unable to authenticate";
} else {
echo "Sucessful";
if (!($stream = ssh2_exec($con, "/home/boza/serv.sh" ))) {
echo "fail: unable to execute command";
} else {
stream_set_blocking($stream, true);
$data = "";
while ($buf = fread($stream,4096)) {
$data .= $buf;
}
fclose($stream);
}
}
}
$ip=“ip”;
$user=“user”;
$pass=“password”;
如果(!函数_存在(“ssh2_连接”))死(“函数ssh2_连接不存在”);
如果(!($con=ssh2\u连接($ip,22))){
echo“失败:无法建立连接\n”;
}否则{
如果(!ssh2_auth_password($con,$user,$pass)){
echo“失败:无法验证”;
}否则{
呼应“成功”;
if(!($stream=ssh2_exec($con,“/home/boza/serv.sh”)){
echo“失败:无法执行命令”;
}否则{
流\设置\阻塞($stream,true);
$data=“”;
而($buf=fread($stream,4096)){
$data.=$buf;
}
fclose($流);
}
}
}
脚本运行良好,但我想对其进行一些更改。
1.我想添加md5哈希到它,使它更安全
2.我希望在访问serv.php时不执行脚本,而是通过按下按钮进行ajax调用来执行脚本。
3.我希望有用户反馈,如“成功”或“失败”。。。就像我现在做的一样,使用live ajax或其他没有刷新站点的东西
我在谷歌上搜索过,并尝试将md5('xxxx')放入脚本中,我发现了一个奇怪的错误,我确信我做错了什么
有人能帮我解决这个问题吗?
MD5
是单向散列,无法保护您的连接。它也很弱,不像以前那么强。我不推荐任何级别的安全性
您应该看到的是使用公钥身份验证进行身份验证
看看这个
只有在按下以下按钮时,才能使用窗体启动脚本:
$ip = "ip";
$user = "user";
$pass = "password";
if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
echo '<form action="#" method="POST">';
echo '<input type="submit" name="launch" value="1" />'
echo '</form>';
if($_POST['launch']==1){
if(!($con = ssh2_connect($ip, 22))){
echo "<font color='red'>fail: unable to establish connection</font>\n";
} else {
if(!ssh2_auth_password($con, $user, $pass)) {
echo "fail: unable to authenticate";
} else {
echo "Sucessful";
if (!($stream = ssh2_exec($con, "/home/boza/serv.sh" ))) {
echo "fail: unable to execute command";
} else {
stream_set_blocking($stream, true);
$data = "";
while ($buf = fread($stream,4096)) {
$data .= $buf;
}
fclose($stream);
}
}
}
}
$ip=“ip”;
$user=“user”;
$pass=“password”;
如果(!函数_存在(“ssh2_连接”))死(“函数ssh2_连接不存在”);
回声';
回声“
回声';
如果($_POST['launch']==1){
如果(!($con=ssh2\u连接($ip,22))){
echo“失败:无法建立连接\n”;
}否则{
如果(!ssh2_auth_password($con,$user,$pass)){
echo“失败:无法验证”;
}否则{
呼应“成功”;
if(!($stream=ssh2_exec($con,“/home/boza/serv.sh”)){
echo“失败:无法执行命令”;
}否则{
流\设置\阻塞($stream,true);
$data=“”;
而($buf=fread($stream,4096)){
$data.=$buf;
}
fclose($流);
}
}
}
}
对于密码,您可以使用“baba”类,或者如果只是源代码读取的问题,您可以使用简单的可逆加密函数,如XOR加密,请注意,这只是为了使密码不能从源代码直接还原,但它不是一个完美的安全性
例如:
function XORin($key='asimpletext', $text='pwd'){
for($i=0;$i<strlen($text);$i++)
{
for($j=0;$j<strlen($key);$j++,$i++)
{
$outText .= $text{$i} ^ $key{$j};
}
}
return $outText;
}
function XORout($key='asimpletext', $text='pwd'){(){
for($i=0;$i<strlen($text);$i++)
{
for($j=0;$j<strlen($key);$j++,$i++)
{
$outText .= $key{$j} ^ $text{$i};
}
}
return $outText;
}
函数XORin($key='asimpletext',$text='pwd'){
对于($i=0;$i我认为还有其他ftp用户,我想对他们隐藏。但不是用公钥:/n如果其他人有访问权限,服务器就不受保护……除非你加密你的整个php代码……即使是高级开发人员也可以破解这一点。这不是问题,我会使用ioncube隐藏所有代码。我只想隐藏密码。但不适用于Base64谢谢按钮解决方案xavier Z。它可以工作,但在我进入页面时出现错误。注意:未定义索引:在第11行的/var/www/serv.php中启动一些非刷新响应如何?
function XORin($key='asimpletext', $text='pwd'){
for($i=0;$i<strlen($text);$i++)
{
for($j=0;$j<strlen($key);$j++,$i++)
{
$outText .= $text{$i} ^ $key{$j};
}
}
return $outText;
}
function XORout($key='asimpletext', $text='pwd'){(){
for($i=0;$i<strlen($text);$i++)
{
for($j=0;$j<strlen($key);$j++,$i++)
{
$outText .= $key{$j} ^ $text{$i};
}
}
return $outText;
}