Pradinis
Pagalba
Užsisakyk!
- Reklamą
- Hostingą
- El. pašto dėžutę
Užsisakyk!
Įrankiai
Pasidalink
- Visos temos
Taigi, šiandien perskaičiau ozzWANTED rašytą straipsnį apie fusion apsaugą, ir nusprendžiau šiek tiek perdaryti kai kuriuos PHP-fusion failus. Dažnai panelėse ir pridėtiniuose puslapiuose PHP nėra naudojamas, o tai yra bereikalinga rizika. Paskaitęs ozzWANTED patarimą ištrinti failus: custom_pages.php ir panel_editor.php aš juos perdariau taip, kad per juos būtų neįmanoma vykdyti PHP kodo (išėmiau eval funkcijas). Taigi, jei norite bent šiek tiek apsaugoti puslapį, galite atnaujinti failus. Nepamirškite, kad PHP kodo vykdyti nebegalėsite net jūs. TIK HTML. Šis patobulinimas pritaikomas 6.01.11 versijai, tačiau turėtu veikti ir žemesnėms. Jei Jūsų versija žemesnė nei 6.01.11, rekomenduoju bent maincore.php kodo įterpinį įvesti ranka, o nepakeisti failą. ----------------------------------------------------------------------- Atnaujinimas: 2007-07-09, galima naudoti konstantas Patogumo dėlei perdariau scriptą, nuo šiol galės naudoti {{basedir}} kaip konstantą, pvz.: <a href="{{basedir}}kelias/iki/failo.php">failas.php</a> ----------------------------------------------------------------------- Atnaujinimas: 2007-07-12 Prie šablono {{basedir}} vieno žmogaus pageidavimu pridėtas laiko ir slapyvardžio šablonas. Laikas atvaizduojamas šablonu {{time}} $rtzDateFormat="H:i / Y-m-d"; Slapyvardis būs rodomas to žmogaus, kuris peržiūrinėja tą puslapį, šablonas: {{nick}} ----------------------------------------------------------------------- Pavyzdys (kad rodytų slapyvardį, užsiregistruokite/prisijunkite). ----------------------------------------------------------------------- Šiuo metu veikiantys šablonai: {{basedir}} - veikia kaip konstanta BASEDIR {{nick}} - rodomas slapyvardis žmogaus, kuris naršo puslapyje. {{time}} rodomas laikas (formato nustatymas 350 eilutėje) ----------------------------------------------------------------------- Taigi, redaguosime šiuos failus: 1. side_left.php 2. side_right.php 3. viewpage.php 4. administration/custom_pages.php 5. administration/panel_editor.php 6. maincore.php 1. side_left.php Atsidarykite failą ir susiraskite 25 eilutę, kurioje turėtų būti: eval(stripslashes($p_data['panel_content'])); pakeiskite tai į openside($p_data['panel_name']); Susiraskite 45 eilutę, kurioje turėtu būti eval(stripslashes($p_data['panel_content'])); ir taip pat pakeiskite į openside($p_data['panel_name']); Išsaugokite, uždarykite ir įkelkite failą. 2. side_right.php Atsidarykite failą ir susiraskite 25 eilutę, kurioje turėtų būti: eval(stripslashes($p_data['panel_content'])); pakeiskite tai į openside($p_data['panel_name']); Susiraskite 45 eilutę, kurioje turėtu būti eval(stripslashes($p_data['panel_content'])); ir taip pat pakeiskite į openside($p_data['panel_name']); Išsaugokite, uždarykite ir įkelkite failą. 3. viewpage.php Atidarykite failą ir suraskite 26 eilutę, kurioje turėtų būti eval("?>".stripslashes($data['page_content'])."<?php "); pakeiskite tai į echo rtz(stripslashes($data['page_content'])); Išsaugokite, uždarykite ir įkelkite failą. 4. administration/custom_pages.php Atidarykite failą ir suraskite 71 eilutę, kurioje turėtų būti eval("?>".$page_content."<?php "); pakeiskite tai į echo rtz($page_content); 5. administration/panel_editor.php Atidarykite failą ir suraskite 111 eilutę, kurioje turėtų būti eval($panel_content); pekeiskite į echo rtz($panel_content); Suraskite 139 eilutę, kurioje turėtų būti $panel_content = "openside(\"name\");\n"." echo \"content\";\n"."closeside();"; pakeiskite į $panel_content = ""; 6. maincore.php Susiraskite 348 eilutę, kurioje turėtų būti return $smiles; po šiuo kodu ĮTERPKITE
Baigta, dabar Jūsų puslapis būs bent šiek tiek apsaugotas nuo, pvz. visų failų ištrynimo, ar sakykime duomenų bazės slaptažodžio sužinojimo. SVARBU: PAVEIKSLIUKAS openside("name"); echo "content"; closeside(); openside("name"); echo "content"; closeside(); ir palikti tik HTML kodą. Jei kils neaiškumų, kreipkitės. Kol kas nenusprendžiau, kaip reikėtų perdaryti settings_forum.php failą. Jei pastebėsite klaidų, prašau pranešti. FAILAI:php-files.zip Sukūrė: Rytis aka Rtz, autorinės teisės perduodamos webdnd.com | Straipsnio informacijaAutoriusRytis Parašymo data 2007 liepos 7 13:07:10 Komentarų 28 Skaityta 5333 Spausdinti |
$rtzDateFormat="H:i / Y-m-d";
function rtz($text) {
global $rtzDateFormat;
global $userdata;
$text = str_replace("{{basedir}}", BASEDIR, $text);
$text = str_replace("{{nick}}", $userdata['user_name'], $text);
$text = str_replace("{{time}}", date($rtzDateFormat), $text);
return $text;
}
global $rtzDateFormat;
global $userdata;
global $rtzDateFormat, $userdata;
$text = str_replace("{{time}}", date($rtzDateFormat), $text);
$text = str_replace("{{time}}", date("H:i / Y-m-d"), $text);
if (!isset($group_id) && !isset($_GET['view'])) {
if (isset($_POST['rate'])) {
if (isNum($_POST['rating']) && !dbcount("(*)","user_ratings","rate_user = '".$userdata['user_id']."' AND rate_subject = '$lookup'") && iMEMBER) {
$result = dbquery("INSERT INTO ".$db_prefix."user_ratings (rate_user,rate_subject,rate_opt,rate_date,rate_ip) VALUES ('".$userdata['user_id']."','$lookup','".$_POST['rating']."','".time()."','".$_SERVER['REMOTE_ADDR']."');");
if ($result) redirect(FUSION_SELF."?lookup=$lookup");
} else {
fallback("http://www.google.lt/");
}
}
|