Gå til innhold

web browser i php?


Anbefalte innlegg

Finnes det et script som er en web browser? Jeg skal prøve å forklare. Man åpner en php side som ser ut som og virker som en web browser. Man surfer via dette scriptet videre ut på nett.

Kjekt å ha en webside på en server hjemme som man kan "surfe" igjennom" dersom brannmuren på jobben blokkerer "på fritiden" web sider.

Lenke til kommentar
Videoannonse
Annonse

Dabear: Din proxy virker egentlig ikke i det hele tatt, da bilder og alt blir lastet på vanlig måte. Med andre ord gjemmer man seg ikke bak en fremmed IP annet enn når man mottar kildekoden. Men så regner jeg med at dette ikke er noe annet enn et miniprosjekt bare ment for eksperimentering heller.

 

Husker jeg selv lagde en PHP-proxy for morroskyld som jeg etterhvert tenkte å tilby som en tjeneste. Men fant fort ut at en slik tjeneste ville stjele alt for mye båndbredde da alle elementer som bilder etc. må gå gjennom min egen host for å skjule IPen til brukeren av proxyen.

 

Jeg vil anbefale på det sterkeste å bruke gratis proxyer framfor å prøve å lage et eget script om sikker surfirn er formålet. Men for de som ønsker en utfordring kan det kanskje være en morsom liten oppgave.

Lenke til kommentar

Jepp, kan legge ut koden. Men tenkte jeg skulle gjøre den om til OOP først, det er gammel kode, fra da jeg holdt på å lære meg php. Kan jo legge den ut da, nyere versjon kommer seinere.

 

<?php 
session_start();

$_SESSION['source'] = ($_GET['viewomrevahoki'] == 'Source_mode') ? 'Source_mode' : 'Vanlig';


if($_SESSION['source'] ==  'Vanlig')
{

   $source_smode = false;
   $sourcevanlig = ' selected="selected"';


}
elseif($_SESSION['source'] ==  'Source_mode')
{

   $sourcevanlig = false;
   $source_smode = ' selected="selected"';



}



if($_GET['user_agentomrevahoki']) { $_SESSION['HTTP_USER_AGENT'] = $_GET['user_agentomrevahoki'];}



class highlight_html
{
var $color_base = '#000000';
var $color_coms = '#008000'; // scripts
var $color_tags = '#000099'; // tags (a, div, span, img, table...)
var $color_dels = '#000099'; //< og >
var $color_atts = '#FF9900'; // attribut (href, src, class, style...)
var $color_vals = '#0000FF'; //attribut innholdsfarge

var $option_egal = true;    
var $option_nl2br = true;  

   function color_tags($code)
   {
    $mask = "#([a-zA-Z0-1\-_]+)=(('|\")|)(.*?)(?(3)(\\3)|( |>))#si";
    if (!$this->option_egal) $repl = "<span style='color: {$this->color_atts}'>\\1</span>=\\3<span style='color: {$this->color_vals}'>\\4</span>\\3\\6";
    if ($this->option_egal) $repl = "<span style='color: {$this->color_atts}'>\\1=</span><span style='color: {$this->color_vals}'>\\3\\4\\3</span>\\6";
    return preg_replace($mask,$repl,$code);
   }

   function int_html($match)
   {
    $bals = array('script','style');
    if (empty($match[2])) $match[2] = '';
    $ends = "<span style='color: {$this->color_base}'>";
    return "</span><span style='color: {$this->color_dels}; font-weight: bold'><</span><span style='color: {$this->color_tags}; font-weight: bold'>$match[1]</span>".substr($this->color_tags($match[2]),0,-1)."<span style='color: {$this->color_dels}; font-weight: bold'>></span>".$ends;
   }
   
   function color_html($code)
   {$code = str_replace('<','<',$code);
    $code = str_replace('<!--',"</span><span style='color: {$this->color_coms}'><!--",$code);
    $code = "<span style='color: {$this->color_base}'>".preg_replace_callback("#<([/a-zA-Z0-9!\?]+)(( [^>]*)?>)#si",array(&$this,'int_html'),$code)."</span>";
    if ($this->option_nl2br) $code = nl2br($code);
    return $code;
   }
}


$html_highlight = new highlight_html;


echo '<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n"; 


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="no">
<head>
<title>
ANONYM SURF - <?php print 'http://' . $_GET['urlomrevahoki'];?>
</title>
<style type="text/css">
#topomrevahoki
{	word-spacing: normal !important;
font-size: 10pt !important;
height: 35pt !important;
border: 1pt solid black !important;
background-color: green !important;
color: white !important;
font-size: 11pt !important;
padding: 0 !important;
margin: 0 !important;
width: 700pt;
position: absolute;
_position: fixed;

z-index: 10000000;

}

#topomrevahoki input
{
word-spacing: normal !important;;
background-color: white !important;
color: #000000 !important;
font-family: verdana !important;
font-size: 10pt !important;
border-style: none !important;
border-width: none !important;
border-color: none !important;
margin-left: 0 !important;
margin-bottom: 0 !important;
z-index: 1000!important;



}

</style>

</head>
<body>

<form id="topomrevahoki" action="<?php echo $_SERVER['PHP_SELF'];?>" method="get">
<div>
<label for="urlomrevahoki">Nettadresse som skal sjekkess (uten 'http://')</label>	
<input type="text" name="urlomrevahoki" id="urlomrevahoki" value="<?php print $_GET['urlomrevahoki']; ?>" />

<label for="viewomrevahoki">vises som source-code eller vanlig?</label>	

<select id="viewomrevahoki" name="viewomrevahoki">


<option<?php echo $source_smode; ?>>Source_mode</option>
<option<?php echo $sourcevanlig; ?>>Vanlig</option>
</select>
</div>
<div>
<label for="user_agentomrevahoki">Send hvilken User-Agent?</label>

<?php /*
<select name="partnumber">
<option value="7382">steam turbine
<option value="2928">resistor array
<option value="3993">widget analyzer
<option value="9398">fiber identifier
</select>
*/
?>
<input type="text" id="user_agentomrevahoki" name="user_agentomrevahoki" size="40"  value="<?php 

echo ($_SESSION['HTTP_USER_AGENT']) ? $_SESSION['HTTP_USER_AGENT']: $_SERVER['HTTP_USER_AGENT'];
?>" />

<input type="submit" value="	Surf!	" />
</div>
</form>

</body>
</html>

<?php



if($_GET['urlomrevahoki']) {


if(isset($_GET['user_agentomrevahoki']))
{
 ini_set('user_agent', $_GET['user_agentomrevahoki'] );

}
else
{
 ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) PHP-request from ' . $_SERVER['HTTP_HOST']);

}
 $fil = file('http://' . $_GET['urlomrevahoki']);	


 


 foreach($fil as $fil2 => $fil3)
 {


 	$color = ($color == 'blue') ?  'red': 'blue';
 	
 	$fila .= $fil3;
 	$fila_entities .=  htmlentities($fil3); 
 	
 }

$til = '<head><base href="http://' . $_GET['urlomrevahoki'] . '" />';

/*
TODO:
find '<head>' case insensitive and apply <base>-tag, use strstr. drop str_replace

*/
$phrase  = $fila;
$healthy = array('<head>', '<HEAD>');
$yummy  = array($til, $til);

$newPhrase = str_replace($healthy, $yummy, $phrase);



echo ($_GET['viewomrevahoki'] == 'Vanlig') ? '<br /><br /> <br />' . $newPhrase: "<pre>\n\n\n\n" . $html_highlight->color_html($fila_entities) . '</pre>';	

}
?>


Endret av dabear
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...