Category Archives: PHP

Double Submit problēmas risinājums

Diezgan pavecs, bet labs raksts, kur aprakstīts, ka to var atrisināt izmantojot GET pieprasījumu ar redirektu pēc POST vai arī izmantojot unikālas vērtības.

Kombinējot abus variantus var veiksmīgi izvairīties arī no CSRF.

Redirekta piemērs priekš PHP.

Drop down menu ar CSS

Vienkārš video, kur parādīts kā to izdarīt. Saprotot to nebūs grūti izveidot gan horizontālus, gan vertikālas izvēlnes.

Un paši faili:


<div id="navMenu"> Continue reading 

Kā nodemonstrēt XSS ievainojamību

Ja ir nepieciešams nodemonstrēt kādā veidā var izmantot XSS ievainojamību kādā mājas lapā, tad var izmantot autora izveidoto php skriptu, lai nebūtu jāizveido divritenis no sākuma.

Otrs veids ir izmantot šo pieeju.
Continue reading

User friendly url

Ir elegants veids kā izveidot lietotājam draudzīgu url pat gadījumā, ja mājas lapas CRM to nepieļauj un nav iespējams veikt izmaiņas servera konfigurācijā (uzstādīt server side redirection ar .htaccess vai .config).
Piemēram, ja ir lapa, kura neuztur lietotājam draudzīgus url- http://kautkas.lv/?i=3 un ir nepieciešams, lai adrese izskatītos- http://kautkas.lv/atrodi-sevi/
Tad to var izdarīt izveidojot direktoriju atrodi-sevi un tajā ievietojot failu index.php ar saturu:
<blockquote><code>
<HTML>
<HEAD>
<META HTTP-EQUIV=”refresh” CONTENT=”0;URL=http://kautkas.lv/?i=3″>
</HEAD>
<BODY>
</BODY>
</HTML></code> </blockquote>

Jāatceras, ka šāda adrese ir tikai lietotājiem draudzīga, nevis meklētājiem.

www.zz.lv un XSS

Mājās drusku pabakstoties atklājās, ka Zemgales ziņas mājas lapas meklēšanas funkcionalitātē ir XSS ievainojamība. Pieņemu, ka tāda pati problēma ir visās AS Dienas reģionālo avīžu mājas lapās.
Pilnībā atvēzēties liedz tas, ka tiek atfiltrēts „=” simbols.
Par XSS var palasīt:

http://hakipedia.com/index.php/Cross_Site_Scripting
http://www.owasp.org/index.php/Cross-site_Scripting_(XSS)
http://ha.ckers.org/xss.html
http://www.martani.net/2009/08/xss-steal-passwords-using-javascript.html

Publisks cron serveris?

Vai kāds zina kādu publisku cron serveri, kas ļautu ar noteiktu regularitāti izsaukt kādu WEB lapu?
Mēģināju atrast google.com, bet neizdevās, varbūt kāds var pateikt?

Izraksts no PHP un MySql

Dažas pamat lietas no php.net, lai katru reizi nav jāmeklē kā pārbaudīt vai tabulā ir meklējamie ieraksti.

< ?php
$conn = mysql_connect("localhost", "mysql_user", "mysql_password");
Continue reading

Hackeri uzbrūk vai gadās arī tā

Vakar izdomāju sakārtot savu WEB saimniecību un izdzēst uz servera aktualitāti zaudējušas lietas- dažādas testa lapas, izstrādes vides, utt.

Tā kā esmu jau aizmirsi, kas man tikai nestāv atveru FTP klientu, lai paskatītos direktoriju saturu.

Identificēju trīs izstrādes lapas, kuras jau ir nodotas un tātad tās var dzēst ārā. Tā kā miglaini atceros, kuras tās bija, tad ar lielu interesi ievadu pirmo:

http://dll.lv/test

Un mani sagaida brīnums :)

Neliels pārsteigums… Continue reading

Draugiem.lv pase priekš wordpress

Šorīt no rīta sagribējās izdarīt kaut ko paliekošu un sabiedrībai interesantu.

Pirmais, kas ienāca prāta bija uzrakstīt plugin priekš wordpress, kas ļautu ievietot komentārus ar draugiem.lv pasi.

Tā apņēmības un entuziasma pilns jau ķēros pie darba, kad ienāca prātā iemest google vai kāds meistars jau nav pacenties un vai netaisos izgudrot divriteni otrreiz..

Par nožēlu priekš manis pirmais rezultāts ievadot draugiem.lv pase wordpress izlec Ģirta Upīša rakstītais plugins.

Žēl..

Apskatot pēdējās relīzes (pagaidām divas 1.0 un 1.1) datumu- 2010.04.13 izdaru secinājumu, ka nokavēju tikai nedaudz.

Kāpēc šī ideja neienāca 1 mēnesi atpakaļ?

Nekas domāsim tālāk kā izpausties brīvos brīžos.

Aizstājam vai izmainām izvadāmo kodu izmantojot javascript

Veidojot vienu lapu radās neikdienišķa situācija- bija nepieciešams izmainīt jau php izveidoto kodu un aizstāt to ar citu, ja izvadītajā html kodā ir sastopams cits unikāls kods.

Kā vienīgais risinājums man ienāca prātā javascript.

Iespējams kādam tas liksies gaužām vienkārši, tomēr man, kas ir “uz jūs” ar javascript izveidot šīs pāris rindiņas bija diezgan ķepīgi un laikietilpīgi.

Nu tad, lūk, pati funkcija un paskaidrojumi:

<script type="text/javascript">

//izsaucam funkciju pie ielādes

window.onload=gethtml; Continue reading

Atbrīvojamies no komentāru spama

WordPress piedāvā iebūvētu un vienkāršu veidu kā atbrīvoties no spama- Akisment, kura spēku var palielināt sadaļā:

Iestatījumi->Diskusijas ierakstot papildus frāzes vai IP adreses, kas liecinās par spamu. Dažas adreses, kuras nomocīja mani:

194.8.75.149

194.8.75.163

87.118.118.133

194.8.74.220

92.112.

92.113.

Bet pavisam nejauši uzdūros vecam pods.lv rakstam, kurā vienkārši ieteikts ar javascript palīdzību pamainīt komentu saņemšanas lapas adresi. Piemērs rakstīts wordpress, bet to tik pat vienkārši var pielāgot jebkurai citai lapai.

Kas tādā veidā tiks izdarīts?

Ja nebūs ieslēgts javascript atbalsts, tad ievadot komentāru tas tiks padots citai lapai, piemēram, /spaamms/ nevis comments.php. Tas sniedz rezultātu, jo daudzām spamotāju sistēmām nav ieslēgts javascript.

Lai izskatītos korektāk var arī izveidot šādu lapu ( dll.lv/spaammss), kurā populārzinātniski paskaidrotu, kas noticis.

Papildus tam pirms komentēšanas formas tiks izvadīs paziņojumu, ka jābūt ieslēgtam javascript, lai komentētu.

Lai to izdarītu atrodam wordpress templeita comments.php failu, kas atrodas “web root/wp-content/themes/temas_nosaukums/comments.php”

Atrodam šādu rindiņu:

<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php” method=”post” id=”commentform”>

un aizstājam to ar:

<form action="<?php echo get_option('siteurl'); ?>/spaamms/" method="post" id="commentform">

<script type="text/javascript">

document.getElementById('commentform').action = "<?php echo get_option('siteurl'); ?>/wp-comments-post.php";

</script>

<noscript>

<p><strong class="postdate">Lai izmantotu koment&#275;&#353;anas iesp&#275;ju, p&#257;rl&#363;k&#257; j&#257;b&#363;t iesl&#275;gtam JavaScript atbalstam!</strong>. Kaut k&#257; ta&#269;u ir j&#257;m&#275;&#291;ina c&#299;n&#299;ties ar koment&#257;ru piedrazot&#257;jiem.</p>

</noscript>

Papildus tam, lai daži spamotāji pa taisno neievietotu komentārus, nomainīju komentāru apstrādājamā faila nosaukumu tai pašā failā:

document.getElementById('commentform').action = "<?php echo get_option('siteurl'); ?>/wp-comments-post.php";

uz:

document.getElementById('commentform').action = "<?php echo get_option('siteurl'); ?>/wp-comments-post_n123.php";

un, protams, tad arī pats komentāru apstrādājošais fails jāpārsauc- atrodas web root/wp-comments-posts.php uz wp-comments-post_n123.php

Es tagad tiešām ceru, ka ar to pietiks…

Kā izgriezt simbolu no WEB lapas..

Viena uzdevuma veikšanai vajadzēja izgriezt no mājaslapas un izvadīt simbolu virkni, kas atradīsies starp noteiktiem tagiem(kuri nav XML).
Uz ātro neatradu gatavu risinājumu tāpēc uzrakstīju funkciju.
Nepretendēju uz pašu asprātīgāko risinājumu, bet varbūt kādam noder..

function griezam($Content,$str_pirms,$str_pec){

$garums_pirms=strlen($str_pirms);
$pec = strstr($Content, $str_pirms);
//nogriežam visu lidz sakumama
//nomemam visu lidz firmai
$pec= substr(“$pec”, $garums_pirms);
//nogriežam
$pec1=strstr($pec, $str_pec);

//saskaitam cik ir atlikusaja rinda un pirms nogriezt beigas
$sk_pec=strlen($pec);
$sk_pirms=strlen($pec1);

$sk=$sk_pec-$sk_pirms;

$rezultats=substr(“$pec”, 0,$sk);

echo “$rezultats”;
}

//ierakstam lapu no kuras gribam izgriezt kaut ko

$Content = file_get_contents(“http://dll.lv”);

//ierakstam stringu kas ir pirms vēlamā elementa. Piemers ir vienkārš, tai pat laikā tā vietā var būt piemēram <div style=”color:#00FF00″>,  galvenais, lai tas būtu pirmais unikālais un beidzas pirms vēlamā

$str_pirms=’<title>’;

//ierakstam stringu, kas ir pec velamā elementa

$str_pec = ‘</title>’;

//izsaucam funkciju

griezam($Content,$str_pirms,$str_pec);

Paplašinām wordpress iespējas

WordPress pēc savas būtības ir ļoti funkcionāla blogošanas platforma, kuru var izmantot arī citiem mērķiem- uzbūvējot vienkāršu statisku mājaslapu.
Tomēr mēģinot izveidot kaut ko interaktīvāku ir jāsastopas ar wordpress uzbūves diviem galvenajiem ierobežojumiem, kurus veido tā 2 pamat komponenti- lapas(page) un raksti(posts). Continue reading

Pārveidot teksta kodējumu uz UTF-8

Dažreiz rodas tāda nepieciešamība, un tādos gadījumos es izmantoju šādu linku:

http://www.pinyin.info/tools/converter/chars2uninumbers.html

Formā ieraktām konvertējamo tekstu un spiežam konvertēt

Lapas redirect

Ja nepieciešams pārsūtīt uz citu lapu tās ielādes laikā, var izmantot php funkciju:

<?
$URL="http://localhost/…";
header ("Location: $URL");

?>

Taču gadījumos, kad jāaizsūta uz citurieni izpildāmā koda vidus daļā(pie noteiktiem notikumiem), nekas neatliek kā izsaukt javascript:

echo “<script language=\”javascript\”>”;
echo “window.location = \”http://localhost/…”;
echo “</script>”;

Tas gan nenostrādās, ja pārlūkā būs atslēgts javascript