• اطلاعیه ها

    • Saeed Fard

      برگزاری میتاپ وردپرسی   14/08/96

      بعد از اولین دوره همایش وردپرس در ایران اگر پیگیر اخبار وردپرس بوده باشید، حتما خبر برگزاری چندین میتاپ و جلسه متعدد وردپرسی را شنیده‌اید، یکی از بحث‌های اصلی که محور اصلی این میتاپ‌ها بوده است برگزاری وردکمپ بود که به طور جدی دنبال می‌شود. این میتاپ‌ها و جلسات توسط جمعی از فعلان حوزه وردپرس در کنار وردپرس‌پارسی برگزار می‌شد و مسائل مربوط به این حیطه و از جمله وردکمپ مورد بحث قرار می‌گرفت. این بار با رایزنی‌هایی که با تیم اصلی وردپرس داشتیم در بخش دوم این رویدادها قصد داریم که میتاپ‌ها و جلسات وردپرسی را به صورت آزاد برگزار کنیم تا تمامی علاقه‌مندان و دوست‌داران وردپرس فرصت حضور داشته باشند و با گردهمایی، جامعه کاملتری از دوست داران وردپرس بسازیم و از تجربیات یکدیگر استفاده کنیم.   بدیهی است که این رویدادها با رویکرد مثبت در جهت سود رسانی به جامعه وردپرس و افراد حاضر در آن برگزار می‌شود و برای تمامی علاقه‌مندان به وردپرس است. پس اگر یک کاربر معمولی وردپرس یا یک توسعه دهنده هستید می‌توانید در این رویدادها شرکت کنید. ما در ملاقات‌هایمان از موارد مختلف و کاربردی وردپرس صحبت می‌کنیم و علاقمند به توسعه هر چه بیشتر وردپرس در ایران هستیم. ما وردپرس را دوست داریم. عضویت در این گروه برای همه افرادی که مایل به پیوستن هستند بدون در نظرگرفتن توانایی‌ها، مهارت‌ها، وضعیت مالی و یا معیارهای دیگر باز و رایگان است. فضای میتاپ‌ها و جلسات ما دوستانه و آزادنه و دور از هرگونه تبعیض و رفتارهای زننده است. بر این اساس از تمامی دوستانی که علاقه‌مند به شرکت در میتاپ‌های وردپرس هستند دعوت می‌شود تا از طریق لینک زیر در سایت میتاپ اقدام به ثبت‌نام کنند و منتظر خبرهای برگزاری جلسات در آینده باشند . لینک ثبت نام و عضویت : https://www.meetup.com/Iran-WordPress-Meetup    
Bright Moon

جلوگیری از حمله به SQL

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

سلام.

بازم سوال مربوط به cms تمرینی و جدید :D

و مربوط به ادامه مطلب

از صفحه اول وقتی میخوام لینک به ادامه مطلب بدم، با متد get آیدی اون مطلب(ریکورد) رو میفرستم به صفحه سینگل.

حالا از اونجایی که داخل صفحه سینگل اون آی دی رو میگیرم و باهاش به mysql درخواست فچ میدم، ممکنه کاربر یه سری دستورات اضافه انتهای همون متد بزنه که به دیتابیس نفوذ کنه.

برای پیشگیری از این نفوذ به فکر خودم اینطور رسید که داخل صفحه سینگل اول ورودی get رو بریزم داخل یک متغیر. یه عمل ریاضی روش اجام بدم (مثلاً با 1 جمع کنم). بعد حاصل رو یه مقایسه انجام بدم(مثلا اگر بزرگتر از 1 و کوچتر از 100000بود).

حالا عمل ریاضی رو برگرونم و مقدارش رو بزارم توی کوئری mysql. اینطوری میتونم تا حدودی مطمئن بشم که متد دریافتی من فقط عدد بوده...

اگر ممکنه راه بهتری رو بهم نشون بدید.

مشکل این ایده منم بگید.

ممنون

0

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


لینک به پست

برای اینکه مطمئن بشی مقداری یک عدد هست میتونی از تابع is_numeric استفاده کنی ، اگر ورودیش عدد بود مقدار true و اگر نبود false را برمیگیرداند

1

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


لینک به پست

اگه تولید لینک یکتا برای هر ادامه مطلب مد نظرتون نیست با SESSION ارسال کنید

3

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


لینک به پست

برای اینکه مطمئن بشی مقداری یک عدد هست میتونی از تابع is_numeric استفاده کنی ، اگر ورودیش عدد بود مقدار true و اگر نبود false را برمیگیرداند

بله ممنون

سوال بنده اینه که آیا همین چک کردن نوع ورودی، امنیت کافی رو به ما میده؟

اگه تولید لینک یکتا برای هر ادامه مطلب مد نظرتون نیست با SESSION ارسال کنید

ممنون دوست عزیز

اما خب "لینک برای ادامه مطلب" حتماً نیاز به لینک یکتایی که فرمودید داره.

دقیقاً کاربر تنها با آدرس وارد کردن باید بتونه دسترسی به صفحه مطلب رو داشته باشه.

0

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


لینک به پست

شما میتونین 2 تا کار انجام بدید

1. مقادیر رو به صورت پارامتر به دیتابیس ارسال کنید مثلا اگه از pdo استفاده میکنید با استفاده از تابع prepare و execute استفاده کنید

2.قبل از ارسال مقدار به کوئری اونو اعتبار سنجی کنید مثلا با استفاده از تابع is_numeric یا با استفاده از ریجکس \d+ اونو اعتبار سنجی کنید

2

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


لینک به پست

ببینید اگر می خواید مقدار ارسالی در get رو بگید ، خوب بالا خره یک چیزی در url میره و اگر کاربر با تغییر اونا بخواد وارد بشه خوب بهش 404 میده

اما اگر م یخواید از تزریق sql جلوگیری کنید از توابع امنیتی html_specialchar و real_scape_string استفاده کنید.

1

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


لینک به پست

شما میتونین 2 تا کار انجام بدید

1. مقادیر رو به صورت پارامتر به دیتابیس ارسال کنید مثلا اگه از pdo استفاده میکنید با استفاده از تابع prepare و execute استفاده کنید

ممنون وایپر جان

منم در مورد پارامتر شنیده بودم.

امکانش هست برای کار با پارامتر توضیحات بیشتر بدید؟

یا یه لینک مفید...

متشکر

0

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


لینک به پست

مثال



[color=#000000][color=#0000BB]<?php[/color]
[color=#FF8000]/* Execute a prepared statement by passing an array of insert values */[/color]
[color=#0000BB]$calories [/color][color=#007700]= [/color][color=#0000BB]150[/color][color=#007700];[/color]
[color=#0000BB]$colour [/color][color=#007700]= [/color][color=#DD0000]'red'[/color][color=#007700];[/color]
[color=#0000BB]$sth [/color][color=#007700]= [/color][color=#0000BB]$dbh[/color][color=#007700]->[/color][color=#0000BB]prepare[/color][color=#007700]([/color][color=#DD0000]'SELECT name, colour, calories
FROM fruit
WHERE calories < ? AND colour = ?'[/color][color=#007700]);[/color]
[color=#0000BB]$sth[/color][color=#007700]->[/color][color=#0000BB]execute[/color][color=#007700](array([/color][color=#0000BB]$calories[/color][color=#007700], [/color][color=#0000BB]$colour[/color][color=#007700]));[/color]
[color=#0000BB]?>[/color] [/color]


http://www.php.net/manual/en/pdostatement.bindparam.php
http://www.php.net/manual/en/pdo.prepare.php

0

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


لینک به پست

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

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

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

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


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

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

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


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