poolmaster

جلوگیری از اجرای اسکریپت در فرم نظرات وردپرس

7 پست در این موضوع قرار دارد

با سلام خدمت دوستان عزیز

قالب سایتی طراحی کردم در قسمت کامنت های قالب زمانی که دیدگاهی رو ارسال می کنم اگر اسکریپت هم ارسال بشه هیچ sanitize یی از جانب وردپرس اعمال نمیشه و اسکریپت ارسال میشه و بعد از ثبت نظر همون اسکریپت اجرا میشه به عنوان مثال اگر یک alert در فرم با جاوااسکریپت ارسال بشه بعد از ارسال اجرا میشه آیا این طبیعی هستش در وردپرس؟ یا راه حلی برای strip یا addslash کردن ورودی کاربر داره در صورت امکان راهنمایی کنید

با تشکر

0

به اشتراک گذاری این پست


لینک به پست

سلام و درود

 

متن کامنت رو از تابع sanitize_textarea_field عبور بدید قبل از اینسرت در دیتابیس.

 

موفق باشید

1

به اشتراک گذاری این پست


لینک به پست

سلام این کار رو قبلا کردم تاثیری نداشت متاسفانه!!!

0

به اشتراک گذاری این پست


لینک به پست
در 42 دقیقه قبل، poolmaster گفته است :

سلام این کار رو قبلا کردم تاثیری نداشت متاسفانه!!!

شما وقتی رشته ای که به عنوان متن دیدگاه ارسال شده رو از تابع فوق عبور بدی هیچ تگ HTML ای نمیمونه توی کامنت.

$str = '<a href="http://example.com/">Example</a>';
echo sanitize_textarea_field($str); // Example

 

1

به اشتراک گذاری این پست


لینک به پست

درسته این تابع رو با اعمال فیلتر به comment_text انجام دادم و از کدهای html جلوگیری کرد اما الان یه مشکلی هست که اگر کاربر برای رفع اشکال کد html ارسال کنه اصلا نمایش داده نمیشه راهی هست که فقط بشه از اجرای اسکریپت جلوگیری کرد؟

اصلا مگه خود وردپرس ورودی های خطرناک رو نباید به طور خودکار در فیلد ارسال کامنت فیلتر کنه؟

0

به اشتراک گذاری این پست


لینک به پست

درود مجدد

 

نقل قول

اصلا مگه خود وردپرس ورودی های خطرناک رو نباید به طور خودکار در فیلد ارسال کامنت فیلتر کنه؟

والا من دقیقا کدهای فرآیند ارسال کامنت به دیتابیس رو به خطار ندارم که اونجا Sanitize انجام میشه یا نه.

ولی میتونید از wp_kses_post هم استفاده کنید این تابع فک کنم HTML ها نگه میداره ولی اونایی رو که باعث ایجاد باگ XSS میشن رو حذف میکنه.

 

موفق باشید

1

به اشتراک گذاری این پست


لینک به پست

با تشکر از شما بله با این تابع مشکل حل شد راه حل رو هم برای دوستان قرار می دم اگر کسی مشکل مشابهی داشت حل بشه کد زیر رو در فانکشن قالبتون کپی کنید

بازم ممنونم بابت راهنمایی و کمکتون 

موفق باشید

function sanitize_comment( $comment_text ) {
    $comment_text = wp_kses_post($comment_text);
    return $comment_text;
}
add_filter( 'comment_text', 'sanitize_comment' );

 

1

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری