最近在想是否可以打通各家微博,显然,新浪的没有什么难度,三下五除二就能够用curl撂倒。而腾讯就不太好做,各个登录入口都有图片验证,图片识别可就难度大了,可看某篇文章,看似也就是md5的问题,不需要图片识别。

登录网站的核心是cookie的问题,另外就是对代码的分析。

做个cookie的小实验:

need-cookie.php
<?
if($_GET['login']){
  $value = 'http://www.aslibra.com';
  setcookie("url", $value);
  exit;
}

if($_COOKIE['url']){
  echo "thanks! your value is ".$_COOKIE['url'];
}else{
  echo "Not permit";
}
?>
Tags: ,
代码如下,测试过可行~ 中文会被忽略,不能纯中文

<?PHP
/*
Google Voice Api
License  :部分代码来自http://www.lostleon.com 增加了错误提示,返回信息,群发,中文转拼音  所需PHP扩展:curl
Author:threesky@gmail.com, http://www.heqee.com/
*/
class GoogleVoice
{
    public $username;
    public $password;
    public $status;
    private $lastURL;
    private $login_auth;
  private $inboxURL = 'https://www.google.com/voice/m/';
  private $loginURL = 'https://www.google.com/accounts/ClientLogin';
  private $smsURL = 'https://www.google.com/voice/m/sendsms';

    public function __construct($username, $password)
    {
        $this->username = $username;
        $this->password = $password;
    }

  public function getLoginAuth()
  {
    $login_param = "accountType=GOOGLE&Email={$this->username}&Passwd={$this->password}&service=grandcentral&source=lostleonATgmailDOTcom-GoogleVoiceTool";
    $login_output = $this->curl($this->loginURL, $this->lastURL, $login_param);
    $this->login_auth = $this->match('/Auth=([A-z0-9_-]+)/', $login_output, 1);
    return $this->login_auth;
  }

  public function get_rnr_se()
  {
    $auth_param = "?auth=".$this->getLoginAuth();
    $inbox_output = $this->curl($this->inboxURL.$auth_param, $this->lastURL);
    $_rnr_se = $this->match('!<input.*?name="_rnr_se".*?value="(.*?)"!ms', $inbox_output, 1);
    return $_rnr_se;
  }

  public function sms($to_phonenumber, $smstxt)
  {
    $_rnr_se = $this->get_rnr_se();
    $sms_param = "id=&c=&number=".urlencode($to_phonenumber)."&smstext=".urlencode($smstxt)."&_rnr_se=".urlencode($_rnr_se);
    $posturl = $this->smsURL."?auth=".$this->login_auth;
    $sms_output = $this->curl($posturl, $this->lastURL, $sms_param);
    $this->status = $sms_output;
    return $sms_output;
  }

  private function curl($url, $referer = null, $post_param = null)
  {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_2_1 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5H11 Safari/525.20");

    if($referer)
        curl_setopt($ch, CURLOPT_REFERER, $referer);

    if(!is_null($post_param))
    {
      curl_setopt($ch, CURLOPT_POST, true);
      curl_setopt($ch, CURLOPT_POSTFIELDS, $post_param);
    }

    $html = curl_exec($ch);
    $this->lastURL = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
    curl_close($ch);
    return $html;
  }

  private function match($regex, $str, $out_ary = 0)
  {
    return preg_match($regex, $str, $match) == 1 ? $match[$out_ary] : false;
  }

}

$voiceApi = new GoogleVoice('cevin1991@gmail.com','*******');
echo $voiceApi->sms('8615022604794','testsadfasfasfa');


参考阅读:

1 数据源见前面说明
2 另外可以参考更多内容:
http://posttopic.com/topic/google-voice-add-on-development
3 参考openID:http://code.google.com/intl/zh-CN/apis/accounts/docs/OpenID.html
Tags: , , , ,
点击这里查看webshell代码

webshell功能强大,学习的好代码,也提醒做运维安全的要有好的办法做预防啊!

预防措施我觉得有几点:

1 文件上传的限制
2 对php文件的检查
3 对于运行php进行路径限制
4 对有危险的php用单独用户运行

第一点是对于恶意的php代码而言的,有些代码可能是你从别人那里复制过来的,做的不好,安全性不够,导致php文件上传到web目录。第二点对于ftp上传,或者php文件被修改的。第三点防止文件上传的,可以不执行文件上传路径的php。第四点是使用另外的用户运行,防止恶意修改别人的文件。

顺便说一下,pastebin网站的分享很有趣,我觉得蛮好的,可以随便贴点代码分享,功能比较的简洁实在。
Tags:
今天发现phpMyadmin3.3版本有两个新功能很实用:
1 Synchronize是支持两个数据库同步的操作,这功能挺好的
2 管理replication

不过,同步操作似乎是经过本地web管理的服务器,如果是远端的数据库同步,可能不太合适了,未确认。除非把管理的web端放在数据库的局域网,那样应该挺快。

复制的管理也蛮好,把平时需要输入的命令行给做成点击几下就可以,很方便,这个实用。

phpmyadmin官网下载最新版本吧!
点击这里查看官方关于同步功能的介绍
Tags: ,
建立两个独立的fastcgi服务会有一些好处:

1 不会因为某个网站进程占用特别多而影响别的网站,因为进程占用满了就没法处理了
2 了解网站的压力

正常情况下,安装完fastcgi后,有如下文件:

引用
etc/:
pear.conf  php-fpm.conf  php.ini

sbin/:
php-fpm


我们启动的是 sbin/php-fpm start
看看文件内容:

#! /bin/sh

php_fpm_BIN=/Data/apps/php-cgi/bin/php-cgi
php_fpm_CONF=/Data/apps/php-cgi/etc/php-fpm.conf
php_fpm_PID=/Data/apps/php-cgi/logs/php-fpm.pid


php_opts=""
# i.e. php_opts="--fpm-config $php_fpm_CONF"

wait_for_pid () {
        try=0
.......

看的出来,可以定义配置文件的路径,设置pid文件路径
这两个都修改后,就可以了。

做如下修改:

1 复制一个php-fpm为9001(这里方便区分原先的9000端口的服务而已,看自己喜欢)

#! /bin/sh

php_fpm_BIN=/Data/apps/php-cgi/bin/php-cgi
php_fpm_CONF=/Data/apps/php-cgi/etc/php-fpm.9001.conf
php_fpm_PID=/Data/apps/php-cgi/logs/php-fpm.9001.pid


#php_opts=""
php_opts="--fpm-config $php_fpm_CONF"


2 修改php-fpm.9001.conf文件

<value name="pid_file">/Data/apps/php-cgi/logs/php-fpm.9001.pid</value>
<value name="error_log">/Data/apps/php-cgi/logs/php-fpm.9001.log</value>
<value name="listen_address">127.0.0.1:9001</value>


3 启动即可 sbin/9001 start
Tags: , ,
分页: 7/20 第一页 上页 2 3 4 5 6 7 8 9 10 11 下页 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐