php攻擊
A. php 簡單的程序設計(輪流攻擊)
胡亂寫了個簡單程序,不過測試程序的時候發現,你的傷害計算有很大的問題。
上面說道:實際傷害=A部隊攻擊力-B部隊防禦力
那麼攻擊最高的騎兵攻擊是30,打在防最低為5的弓兵身上,那麼傷害等於30-5=25,這里倒是沒多大問題,但是又看
實際傷害/B部隊單位血量=本次攻擊殺死敵兵數量,余數進位.
那麼殺死弓兵的數量就等於25/200=0.125 按余數進位也就是1而已 0.125已經是裡面最大的傷害了,所以造成每次無論任意兵種攻擊任意兵種,死亡的單位都是1.
附程序(沒怎麼思考,期待樓下更精簡的演算法):
<?php
//初始化團隊
$team_a=array(
"5"=>set_c("軍團A騎兵甲","cavalry"),
"11"=>set_c("軍團A弓兵甲","archer"),
"14"=>set_c("軍團A弓兵乙","archer"),
"8"=>set_c("軍團A步兵甲","infantry"),
"7"=>set_c("軍團A步兵乙","infantry")
);
$team_b=array(
"8"=>set_c("軍團B騎兵甲","cavalry"),
"9"=>set_c("軍團B騎兵乙","cavalry"),
"13"=>set_c("軍團B弓兵甲","archer"),
"5"=>set_c("軍團B步兵甲","infantry"),
"10"=>set_c("軍團B步兵乙","infantry")
);
//按速度對團隊進行排序
$team_a=spe_sort($team_a);
$team_b=spe_sort($team_b);
//初始化戰斗單位
function set_c($name,$type){
//初始化兵種 infantry 步兵 archer弓兵 cavalry騎兵,兵種=>(攻,防,HP,速度,數量).
$arm=array(
"infantry"=>array("tak"=>20,"def"=>10,"hp"=>250,"spe"=>"20|24","amo"=>120),
"archer"=>array("tak"=>25,"def"=>5,"hp"=>200,"spe"=>"25|27","amo"=>100),
"cavalry"=>array("tak"=>30,"def"=>15,"hp"=>300,"spe"=>"28|30","amo"=>80)
);
$d=$arm[$type];
$d["name"]=$name;
$spe=explode("|",$d["spe"]);
$d["spe"]=rand($spe[0],$spe[1]);
return $d;
}
//速度排序
function spe_sort($array){
foreach($array as $key => $value)
{
$temp[$key] = $value['spe'];
}
arsort($temp);
foreach($temp as $key => $value)
{
$result[$key] = $array[$key];
}
return $result;
}
//戰斗函數 $active=攻擊團隊 $passive=被攻擊團隊
function fight($active,$passive){
//目標選擇規則
$targeting=array(7,4,10,1,13,8,5,11,2,14,9,6,12,3,15);
foreach($active as $k=>$a)
{ foreach($targeting as $t)
{
if(isset($passive[$t]))
{
$hurt=$active[$k]["tak"]-$passive[$t]["def"];
$kill=ceil($hurt/$passive[$t]["hp"]);
$passive[$t]["amo"]=$passive[$t]["amo"]-$kill;
echo "<font color='#0000FF'>".$active[$k]["name"]."</font> 攻擊了 <font color='#0000FF'>". $passive[$t]["name"] ."</font>,共傷害<font color='#ff000'> $hurt </font>點,殺死<font color='#ff000'> $kill </font>個單位.剩餘".$passive[$t]["amo"]."個單位</br>";
if( $passive[$t]["amo"]<=0)
{
echo "×<font color='#ff000'>".$passive[$t]["name"]."</font>被消滅了!</br>";
unset($passive[$t]);
if(!count($passive)){echo "<font color='#ff000'>該軍團已全軍覆沒!戰斗結束....</font>"; die();}
}
break;
}
}
}
echo "-------------------本回合結束,換對方攻擊-------------------</br>";
fight($passive,$active);
}
echo "戰斗開始!</br>";
fight($team_a,$team_b);
?>
B. 如何攻擊php網站,欺騙後台程序!高手指點!
大家都是同行,你卻要干壞事!我不交你!
C. PHP SQL注入攻擊
這是伺服器端的魔法引號。你可以看看你的magic_quotes_gpc是否開啟狀態,如果開啟了,所有的引號會被自動轉義,防止此類SQL注入。
另外,就算沒有開啟魔法引號,PHP腳本裡面也可以通過addslashes對$_GET、$_POST、$_COOKIE等等作轉義處理,也就是在引號前加上「\」轉義符號,防止此類SQL注入。
至於攻擊的方法,這條SQL在我看來還是很安全的,從別的地方下手吧~~~
D. thinkphp 網站怎麼攻擊
這種開源產品一般很難找到漏洞。即使找到了,一旦有人受到攻擊,補丁馬上就會出來
E. html或php代碼怎麼寫攻擊的,就是,一個正常網站,背後一直在攻擊一個IP,求代碼(虛擬空間的)
很容易,curl可以實現,命令行ping也可以實現,html是xss攻擊,
F. php的網站主要攻擊方式有哪些
常見攻擊方式:1、命令注入,2、eval注入,3、客戶端腳本攻擊,4、跨網站腳本攻擊,
G. 伺服器被php-dos攻擊,原因是什麼
我以前也遇到過這種情況當時是伺服器向外發包,流量佔到了%100,當時機房都沒有辦法解決,無奈之下朋友告訴我,叫sinesafe來著他們專業做伺服器安全和網站安全,我找了他們後,就把這個php dos攻擊給解決了,他們給我說了原因是我伺服器中一個PHP網站因為程序漏洞被黑客利用了,然後發動了 php dos攻擊,和sinesafe合作了半年,伺服器非常穩定安全,在也沒遇到流量像外發包的攻擊,真的很感謝他們,希望我的經歷,能給大家盡量帶來最少的損失。
H. 如何防止代碼注入攻擊在PHP
一,HTML防注入。
一般的html注入都是在字元串中加入了html標簽,用下JAVA代碼可以去掉這部分代碼。
代碼如下,自己封裝成方法即可。
String msge = "asdasdasdasd <div id=\"f\">asdfsdf";
System.out.println(msge);
msge = msge.replace("&", "&");
msge = msge.replace("<", "<");
msge = msge.replace(" ", " ");
msge = msge.replace(">", ">");
msge = msge.replace("\"", """);
msge = msge.replace("'", "&qpos;");
System.out.println(msge);
二、防SQL注入
最簡單最容易的是限制用戶輸入。
簡單點的就是不允許用戶輸入單引號 和 --,因為單引號號--在SQL中都是影響執行的。
但SQL注入是多方面的,防止的方法也有很多種。
1、地址欄禁止特殊字元防SQL注入
把特殊字元(如and、or、'、")都禁止提交就可以防止注入了。
2、php過濾html字元串,防止SQL注入
批量過濾post,get敏感數據
$_GET = stripslashes_array($_GET);
$_POST = stripslashes_array($_POST);
數據過濾函數
function stripslashes_array(&$array) {
while(list($key,$var) = each($array)) {
if ($key != 'argc' && $key != 'argv' && (strtoupper($key) != $key || ''.intval($key) == "$key")) {
if (is_string($var)) {
$array[$key] = stripslashes($var);
}
if (is_array($var)) {
$array[$key] = stripslashes_array($var);
}
}
}
return $array;
}
3、替換HTML尾標簽
function lib_replace_end_tag($str)
{
if (empty($str)) return false;
$str = htmlspecialchars($str);
$str = str_replace( '/', "", $str);
$str = str_replace("\\", "", $str);
$str = str_replace(">", "", $str);
$str = str_replace("<", "", $str);
$str = str_replace("<SCRIPT>", "", $str);
$str = str_replace("</SCRIPT>", "", $str);
$str = str_replace("<script>", "", $str);
$str = str_replace("</script>", "", $str);
$str=str_replace("select","select",$str);
$str=str_replace("join","join",$str);
$str=str_replace("union","union",$str);
$str=str_replace("where","where",$str);
$str=str_replace("insert","insert",$str);
$str=str_replace("delete","delete",$str);
$str=str_replace("update","update",$str);
$str=str_replace("like","like",$str);
$str=str_replace("drop","drop",$str);
$str=str_replace("create","create",$str);
$str=str_replace("modify","modify",$str);
$str=str_replace("rename","rename",$str);
$str=str_replace("alter","alter",$str);
$str=str_replace("cas","cast",$str);
$str=str_replace("&","&",$str);
$str=str_replace(">",">",$str);
$str=str_replace("<","<",$str);
$str=str_replace(" ",chr(32),$str);
$str=str_replace(" ",chr(9),$str);
$str=str_replace(" ",chr(9),$str);
$str=str_replace("&",chr(34),$str);
$str=str_replace("'",chr(39),$str);
$str=str_replace("<br />",chr(13),$str);
$str=str_replace("''","'",$str);
$str=str_replace("css","'",$str);
$str=str_replace("CSS","'",$str);
return $str;
}
三、專業的事情交給專業的工具去做。
安裝安全軟體。例如,在伺服器中安裝「伺服器安全狗」,可以設置防注入,防攻擊的設置,只要設置好安全規則,就可以屏蔽大多數攻擊入侵。
I. 如何使用php代碼攻擊網站
上傳漏洞 注入漏洞 等
J. php下怎樣防止XSS攻擊
在PHP中修補XSS漏洞,我們可以使用三個PHP函數。
這些函數主要用於清除HTML標志,這樣就沒辦法注入代碼了。使用更多的函數是htmlspecialchars() ,它可以將所有的"<"與">"符號轉換成"<" 與">;"。其它可供選擇的函數還有htmlentities(), 它可以用相應的字元實體(entities)替換掉所有想要替換掉的特徵碼(characters)。
PHP Code:
<?
// 這里的代碼主要用於展示這兩個函數之間輸出的不同
$input = '<script>alert(1);</script>';
echo htmlspecialchars($input) . '<br />';
echo htmlentities($input);
?>
htmlentities()的另一個例子
PHP Code:
<?php
$str = "A 'quote' is <b>bold</b>";
echo htmlentities($str);
echo htmlentities($str, ENT_QUOTES);
?>
第一個顯示: A 'quote' is <b>bold</b>
第二個顯示:A 'quote' is <b>bold</b>
htmlspecialchars()使用實例
PHP Code:
<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new;
?>
顯示: <a href='test'>Test</a>
strip_tags()函數代替.刪除所有的HTML元素(elements),除了需要特別允許的元素之外,如:<i>, <b> 或<p>.
strip_tags()使用實例
PHP Code:
<?php
$text = '<p>Test paragraph.</p><!-- Comment --> Other text';
echo strip_tags($text);
echo "\n";
// allow <p>
echo strip_tags($text, '<p>');
?>
現在我們至少已經知道有這些函數了,當我們發現我們的站點存在XSS漏洞時就可以使用這些代碼了。我最近在我的站點上的GoogleBig(一個Mybb論壇的插件)視頻部分發現了一個XSS漏洞,因此我就在想如何使用這些函數寫段代碼來修補這個搜索漏洞。
首先我發現問題出在search.php這一文件上,現在讓我們看看這個查詢及輸出查詢結果中的部分代碼研究一下:
PHP Code:
function search($query, $page)
{
global $db, $bgcolor2, $bgcolor4, $sitename, $io_db, $mole_url, $list_page_items, $hm_index;
$option = trim($option);
$query = trim($query);
$query = FixQuotes(nl2br(filter_text($query)));
$db->escape_string($query);
$db->escape_string($option);
alpha_search($query);
...
在這種情況下,我們通過使用$query這一值作為變數,然後使用htmlentities()這一函數:
PHP Code:
$query = FixQuotes(nl2br(filter_text(htmlentities($query))));
如果你對這三種函數還有有疑問可以使用PHP手冊來查看:
http://it.php.net/htmlentities
http://it2.php.net/htmlspecialchars
http://it2.php.net/strip_tags