תיקון הבעיה במערכת phpbb – בתצוגת שאלת אבטחה

מאת שלומי , פורסם ב27 בינואר 2011 , קטגוריה בנייה וקידום אתרים
VN:R_U [1.9.17_1161]
Rating: 5.0/5 (1 vote cast)

לאחרונה נתקלתי בהרבה מקרים שבהם רובוטים קוראים את התמונות בCaptcha.

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

במיוחד  במערכת phpbb – שבעבקות מתקפת רובוטים שקוראים את תמונות בשאלות ותשובות Captcha,

וממלאים את הפורומים בהודעות לא ממש "מעניינות" בלשון המעטה…

ומה שרוב המשתמשים עושים, זה שמים שאלת אבטחה, שמופיע בהרשמה,

אך שמשתמש עובר את מספר הניסיונות התחברות, זה לא מופיעה..

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

פשוט מאוד, גשו styles/XXX/template , והורידו את הקובץ login_body ופתחו את הקובץ (מומלץ לשמור גיבוי)

למשתמשים בעיצוב prosilver החליפו את התוכן בתוכן הזה:

<!– INCLUDE overall_header.html –>
<script type="text/javascript">
// <![CDATA[
onload_functions.push('document.getElementById("{USERNAME_CREDENTIAL}").focus();');
// ]]>
</script>
<form action="{S_LOGIN_ACTION}" method="post" id="login">
<div>
<div><span><span></span></span>
<div>
<h2><!– IF LOGIN_EXPLAIN –>{LOGIN_EXPLAIN}<!– ELSE –>{L_LOGIN}<!– ENDIF –></h2>
<fieldset <!– IF not S_CONFIRM_CODE –>class="fields1"<!– ELSE –>class="fields2"<!– ENDIF –>>
<!– IF LOGIN_ERROR –><div>{LOGIN_ERROR}</div><!– ENDIF –>
<dl>
<dt><label for="{USERNAME_CREDENTIAL}">{L_USERNAME}:</label></dt>
<dd><input type="text" tabindex="1" name="{USERNAME_CREDENTIAL}" id="{USERNAME_CREDENTIAL}" size="25" value="{USERNAME}" /></dd>
</dl>
<dl>
<dt><label for="{PASSWORD_CREDENTIAL}">{L_PASSWORD}:</label></dt>
<dd><input type="password" tabindex="2" id="{PASSWORD_CREDENTIAL}" name="{PASSWORD_CREDENTIAL}" size="25" /></dd>
<!– IF S_DISPLAY_FULL_LOGIN and (U_SEND_PASSWORD or U_RESEND_ACTIVATION) –>
<!– IF U_SEND_PASSWORD –><dd><a href="{U_SEND_PASSWORD}">{L_FORGOT_PASS}</a></dd><!– ENDIF –>
<!– IF U_RESEND_ACTIVATION –><dd><a href="{U_RESEND_ACTIVATION}">{L_RESEND_ACTIVATION}</a></dd><!– ENDIF –>
<!– ENDIF –>
</dl>
<!– IF CAPTCHA_TEMPLATE and S_CONFIRM_CODE –>
<!– DEFINE $CAPTCHA_TAB_INDEX = 3 –>
<!– INCLUDE {CAPTCHA_TEMPLATE} –>
<!– ENDIF –>
<!– IF S_DISPLAY_FULL_LOGIN –>
<dl>
<!– IF S_AUTOLOGIN_ENABLED –><dd><label for="autologin"><input type="checkbox" name="autologin" id="autologin" tabindex="4" /> {L_LOG_ME_IN}</label></dd><!– ENDIF –>
<dd><label for="viewonline"><input type="checkbox" name="viewonline" id="viewonline" tabindex="5" /> {L_HIDE_ME}</label></dd>
</dl>
<!– ENDIF –>
{S_LOGIN_REDIRECT}
<dl>
<dt>&nbsp;</dt>
<dd>{S_HIDDEN_FIELDS}<input type="submit" name="login" tabindex="6" value="{L_LOGIN}" /></dd>
</dl>
</fieldset>
</div>
<span><span></span></span></div>
</div>
<!– IF not S_ADMIN_AUTH and S_REGISTER_ENABLED –>
<div>
<div><span><span></span></span>
<div>
<h3>{L_REGISTER}</h3>
<p>{L_LOGIN_INFO}</p>
<p><strong><a href="{U_TERMS_USE}">{L_TERMS_USE}</a> | <a href="{U_PRIVACY}">{L_PRIVACY}</a></strong></p>
<hr />
<p><a href="{U_REGISTER}">{L_REGISTER}</a></p>
</div>
<span><span></span></span></div>
</div>
<!– ENDIF –>
</form>
<!– INCLUDE overall_footer.html –>

<!– INCLUDE overall_header.html –>
<script type="text/javascript">// <![CDATA[ onload_functions.push('document.getElementById("{USERNAME_CREDENTIAL}").focus();');// ]]></script>
<form action="{S_LOGIN_ACTION}" method="post" id="login"><div> <div><span><span></span></span>
<div> <h2><!– IF LOGIN_EXPLAIN –>{LOGIN_EXPLAIN}<!– ELSE –>{L_LOGIN}<!– ENDIF –></h2>
<fieldset <!– IF not S_CONFIRM_CODE –>class="fields1"<!– ELSE –>class="fields2"<!– ENDIF –>> <!– IF LOGIN_ERROR –><div>{LOGIN_ERROR}</div><!– ENDIF –> <dl> <dt><label for="{USERNAME_CREDENTIAL}">{L_USERNAME}:</label></dt> <dd><input type="text" tabindex="1" name="{USERNAME_CREDENTIAL}" id="{USERNAME_CREDENTIAL}" size="25" value="{USERNAME}" /></dd> </dl> <dl> <dt><label for="{PASSWORD_CREDENTIAL}">{L_PASSWORD}:</label></dt> <dd><input type="password" tabindex="2" id="{PASSWORD_CREDENTIAL}" name="{PASSWORD_CREDENTIAL}" size="25" /></dd> <!– IF S_DISPLAY_FULL_LOGIN and (U_SEND_PASSWORD or U_RESEND_ACTIVATION) –> <!– IF U_SEND_PASSWORD –><dd><a href="{U_SEND_PASSWORD}">{L_FORGOT_PASS}</a></dd><!– ENDIF –> <!– IF U_RESEND_ACTIVATION –><dd><a href="{U_RESEND_ACTIVATION}">{L_RESEND_ACTIVATION}</a></dd><!– ENDIF –> <!– ENDIF –> </dl> <!– IF CAPTCHA_TEMPLATE and S_CONFIRM_CODE –> <!– DEFINE $CAPTCHA_TAB_INDEX = 3 –> <!– INCLUDE {CAPTCHA_TEMPLATE} –> <!– ENDIF –> <!– IF S_DISPLAY_FULL_LOGIN –> <dl> <!– IF S_AUTOLOGIN_ENABLED –><dd><label for="autologin"><input type="checkbox" name="autologin" id="autologin" tabindex="4" /> {L_LOG_ME_IN}</label></dd><!– ENDIF –> <dd><label for="viewonline"><input type="checkbox" name="viewonline" id="viewonline" tabindex="5" /> {L_HIDE_ME}</label></dd> </dl> <!– ENDIF –>
{S_LOGIN_REDIRECT} <dl> <dt>&nbsp;</dt> <dd>{S_HIDDEN_FIELDS}<input type="submit" name="login" tabindex="6" value="{L_LOGIN}" /></dd> </dl> </fieldset> </div> <span><span></span></span></div></div>

<!– IF not S_ADMIN_AUTH and S_REGISTER_ENABLED –> <div> <div><span><span></span></span>
<div> <h3>{L_REGISTER}</h3> <p>{L_LOGIN_INFO}</p> <p><strong><a href="{U_TERMS_USE}">{L_TERMS_USE}</a> | <a href="{U_PRIVACY}">{L_PRIVACY}</a></strong></p> <hr /> <p><a href="{U_REGISTER}">{L_REGISTER}</a></p> </div>
<span><span></span></span></div> </div><!– ENDIF –>
</form>
<!– INCLUDE overall_footer.html –>

למשתמשים בעיצוב subsilver2 החליפו את התוכן בתוכן הזה:

<!– INCLUDE overall_header.html –>

<form action="{S_LOGIN_ACTION}" method="post">

<table class="tablebg" width="100%" cellspacing="1">

<tr>

<!– IF not S_ADMIN_AUTH –>

<th colspan="2">{L_LOGIN}</th>

<!– ELSE –>

<th>{LOGIN_EXPLAIN}</th>

<!– ENDIF –>

</tr>

<!– IF LOGIN_EXPLAIN && not S_ADMIN_AUTH –>

<tr>

<td class="row3" colspan="2" align="center"><span class="gensmall">{LOGIN_EXPLAIN}</span></td>

</tr>

<!– ENDIF –>

<tr><!– IF not S_ADMIN_AUTH and S_REGISTER_ENABLED –>

<td class="row1" width="50%">

<p class="genmed">{L_LOGIN_INFO}</p>

<p class="genmed" align="center">

<a href="{U_TERMS_USE}">{L_TERMS_USE}</a> | <a href="{U_PRIVACY}">{L_PRIVACY}</a>

</p>

</td>

<!– ENDIF –>

<td <!– IF not S_ADMIN_AUTH –>class="row2"<!– ELSE –>class="row1"<!– ENDIF –>>

<table align="center" cellspacing="1" cellpadding="4" style="width: 100%;">

<!– IF LOGIN_ERROR –>

<tr>

<td class="gensmall" colspan="2" align="center"><span class="error">{LOGIN_ERROR}</span></td>

</tr>

<!– ENDIF –>

<tr>

<td valign="top" <!– IF S_ADMIN_AUTH –>style="width: 50%; text-align: {S_CONTENT_FLOW_END};"<!– ENDIF –>><b class="gensmall">{L_USERNAME}:</b></td>

<td><input class="post" type="text" name="{USERNAME_CREDENTIAL}" size="25" value="{USERNAME}" tabindex="1" />

<!– IF not S_ADMIN_AUTH and S_REGISTER_ENABLED –>

<br /><a class="gensmall" href="{U_REGISTER}">{L_REGISTER}</a>

<!– ENDIF –>

</td>

</tr>

<tr>

<td valign="top" <!– IF S_ADMIN_AUTH –>style="width: 50%; text-align: {S_CONTENT_FLOW_END};"<!– ENDIF –>><b class="gensmall">{L_PASSWORD}:</b></td>

<td>

<input class="post" type="password" name="{PASSWORD_CREDENTIAL}" size="25" tabindex="2" />

<!– IF U_SEND_PASSWORD –><br /><a class="gensmall" href="{U_SEND_PASSWORD}">{L_FORGOT_PASS}</a><!– ENDIF –>

<!– IF U_RESEND_ACTIVATION and not S_ADMIN_AUTH –><br /><a class="gensmall" href="{U_RESEND_ACTIVATION}">{L_RESEND_ACTIVATION}</a><!– ENDIF –>

</td>

</tr>

<!– IF S_DISPLAY_FULL_LOGIN –>

<!– IF S_AUTOLOGIN_ENABLED –>

<tr>

<td>&nbsp;</td>

<td><input type="checkbox" class="radio" name="autologin" tabindex="3" /> <span class="gensmall">{L_LOG_ME_IN}</span></td>

</tr>

<!– ENDIF –>

<tr>

<td>&nbsp;</td>

<td><input type="checkbox" class="radio" name="viewonline" tabindex="4" /> <span class="gensmall">{L_HIDE_ME}</span></td>

</tr>

<!– ENDIF –>

</table>

</td>

</tr>

<!– IF CAPTCHA_TEMPLATE and S_CONFIRM_CODE –>

</table>

<table class="tablebg" width="100%" cellspacing="1">

<!– INCLUDE {CAPTCHA_TEMPLATE} –>

<!– ENDIF –>

{S_LOGIN_REDIRECT}

<tr>

<td class="cat" <!– IF not S_ADMIN_AUTH or S_CONFIRM_CODE –>colspan="2"<!– ENDIF –> align="center">{S_HIDDEN_FIELDS}<input type="submit" name="login" class="btnmain" value="{L_LOGIN}" tabindex="5" /></td>

</tr>

</table>

{S_FORM_TOKEN}

</form>

<br clear="all" />

<!– INCLUDE breadcrumbs.html –>

<br clear="all" />

<div align="{S_CONTENT_FLOW_END}"><!– INCLUDE jumpbox.html –></div>

<script type="text/javascript">

// <![CDATA[

(function()

{

var elements = document.getElementsByName("{USERNAME_CREDENTIAL}");

for (var i = 0; i < elements.length; ++i)

{

if (elements[i].tagName.toLowerCase() == 'input')

{

elements[i].focus();

break;

}

}

})();

// ]]>

</script>

<!– INCLUDE overall_footer.html –>

כנסו לתיקייה הראשית בFTP, עברו לתיקיית cache, ומחקו את כל התוכן.

ו..זהו :) , נסה להתחבר, בהצלחה :)

בהצלחה, שלומי.

תיקון הבעיה במערכת phpbb - בתצוגת שאלת אבטחה, 5.0 out of 5 based on 1 rating