התחברות ל-DB של הפורום מבחוץ?

פורום התמיכה במודים לגרסה phpBB2. שימו לב - פורום זה הינו פורום ארכיון. התמיכה במערכת phpBB2 הופסקה.

מנהל: צוות האתר

iamyoda
משתמש חדש
משתמש חדש
הודעות: 10
הצטרף: 21/01/2006 ב-01:59:34

התחברות ל-DB של הפורום מבחוץ?

הודעה שלא נקראהעל ידי iamyoda » 30/01/2006 ב-00:31:23

אני בונה לי אתר על בסיס מערכת הפורומים שכאן.
כחלק מהעניין באתר, יהיו פורומים עם אשכולות שונים, ובנוסף יהיו דפי HTML רגילים שיציגו תוכן של חלק מהאשכולות (הדפים יווצרו באופן ידני בלי שום קשר למערכת הפורומים).

העניין הוא, שאני רוצה שבכל פעם שמישהו צופה בדף הגרפי / HTML שלי - מניין הצפיות של האשכול התואם בפורום יעלה ב-1

חקרתי קצת והבנתי שבעצם אני רוצה להפעיל בדף ה-HTML באירוע onLoad קוד שיתחבר לבסיס הנתונים של הפורום ויריץ, לדוגמא, את השורה -
update `phpbb_topics` set `topic_views`=`topic_views`+1
where `topic_id`=114

אז השאלות שלי הן -
א. האם זה באמת הקוד.
ב. האם באמת לעשות את זה ב-onLoad ואיך לעשות את זה? (איך לכתוב את הקוד ב-HTML)
ג. האם זה מחייב אותי לשים שם משתמש וסיסמא ב-cleartext בדף ה-HTML?

ממש ממש מחכה לתשובה
!

ttttt
משתמש מתקדם
משתמש מתקדם
הודעות: 1435
הצטרף: 08/01/2006 ב-21:29:11

הודעה שלא נקראהעל ידי ttttt » 30/01/2006 ב-19:49:40

בהנחה שהשרת שלך הוא אפאצ'י, ואין לך גישה לקונפיגורציה של השרת, לא תוכל לעשות זאת בדף html.
ברירת המחדל של השרת היא לקחת דפים אלו ולשלוח אותם ישירות ללקוח, בעוד שאתה מעוניין להפעיל סקריפט בצד השרת.
לכן, כדי שתוכל לבצע את מה שאתה רוצה, הדף חייב להיות עם סיומת php, דבר שיגרום לשרת (בקונפיגורציה סטנדרטית) לשלוח את הדף לפרשן פהפ במקום ישירות ללקוח.
אמנם ניתן לקנפג את השרת לשלוח את כל הדפים לפרשן, אבל זה בד"כ לא רצוי, ובכל מקרה זה מסובך בהרבה משינוי שם הקובץ.
כלומר, צעד ראשון יהיה לשנות את סיומת הקובץ מ html ל php
(אל דאגה: פרשן php ישלח כל מה שלא נמצא בין תגי

קוד: בחר הכל

<?php some php code here ?>
ישירות ללקוח, כך שהדף ימשיך להתנהג כרגיל.
אחרי שעשית זאת, הוסף את הקטע הבא מייד לאחר תגית ה body:

קוד: בחר הכל

<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$db->sql_query("UPDATE " . TOPICS_TABLE . "   SET topic_views = topic_views + 1   WHERE topic_id = YOUR_TOPIC_ID");
?>

קח בחשבון שקוד עובד רק לעתים נדירות בפעם הראשונה ללא שגיאות, כך שתצטרך להיות מוכן לדבג ולתקן את השגיאות. אני כמובן לא ניסיתי ובדקתי את הקוד שרשמתי כאן, לכן סביר שהוא "על בערך".

iamyoda
משתמש חדש
משתמש חדש
הודעות: 10
הצטרף: 21/01/2006 ב-01:59:34

אני אבדוק

הודעה שלא נקראהעל ידי iamyoda » 30/01/2006 ב-19:55:06

תודה רבה

ttttt
משתמש מתקדם
משתמש מתקדם
הודעות: 1435
הצטרף: 08/01/2006 ב-21:29:11

הודעה שלא נקראהעל ידי ttttt » 30/01/2006 ב-19:57:37

דווח על תוצאות הבדיקה.

iamyoda
משתמש חדש
משתמש חדש
הודעות: 10
הצטרף: 21/01/2006 ב-01:59:34

ממצאים

הודעה שלא נקראהעל ידי iamyoda » 31/01/2006 ב-12:19:56

הקוד שלי נראה ככה :

קוד: בחר הכל

<html>
<body>
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './phpBBHeb/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$db->sql_query("UPDATE `phpbb_topics`   SET `topic_views` = `topic_views` + 100   WHERE `topic_id` = 226");
?>

</body>
</html>


כשאני מריץ אותו אני מקבל
Hacking attempt
Fatal error: Call to a member function on a non-object in /home/virtual/site/public_html/test.php on line 8


:roll:

ttttt
משתמש מתקדם
משתמש מתקדם
הודעות: 1435
הצטרף: 08/01/2006 ב-21:29:11

הודעה שלא נקראהעל ידי ttttt » 31/01/2006 ב-15:08:04

קח בחשבון שקוד עובד רק לעתים נדירות בפעם הראשונה ללא שגיאות, כך שתצטרך להיות מוכן לדבג ולתקן את השגיאות. אני כמובן לא ניסיתי ובדקתי את הקוד שרשמתי כאן, לכן סביר שהוא "על בערך".

iamyoda
משתמש חדש
משתמש חדש
הודעות: 10
הצטרף: 21/01/2006 ב-01:59:34

תראה

הודעה שלא נקראהעל ידי iamyoda » 31/01/2006 ב-15:09:53

אני ממש לא התלוננתי
וזה בסדר שזה לא עובד

פשוט הידע שלי בנושא די מוגבר ואני מחפש סיוע

אני מניח שהודעה כמו זו שקיבלתי היא הודעת שגיאה ידועה במקרה של התחברות מבחוץ וזה אומר שדרוש להקים session מול המערכת או משהו כזה

אם יש עוד רעיונות - אשמח לשמוע

ttttt
משתמש מתקדם
משתמש מתקדם
הודעות: 1435
הצטרף: 08/01/2006 ב-21:29:11

הודעה שלא נקראהעל ידי ttttt » 31/01/2006 ב-15:22:12

בעצם זה פשוט מאד:
ההודעה "Hacking Attempt" מופיעה מספר פעמים בקוד של phpbb (לא כל כך הרבה). מתוך זה 4 פעמים בקבצים הכלולים (extensions.inc + common.php).
מצא איזו מתוך הפעמים האלו היא זו שמופיעה (למשל ע"י הוספת 1, 2, 3, 4 להודעות כדי שתוכל להבדיל ביניהן), מה התנאי שגורם לבעיה, חשוב איך למנוע היווצרות התנאי הזה, ו - קדימה לבאג הבא!


חזור אל “תמיכה במודים - ארכיון”

מי מחובר

משתמשים הגולשים בפורום זה: אין משתמשים רשומים ו־ 65 אורחים

cron