Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 04-22-2011, 08:02 AM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default clean_array_gpc question

I am kind of confused with it comes to cleaning certain variables. Do I need to do anything special for URL links? Here is the code I am using right now in the profile_updateprofile hook:

Code:
$vbulletin->input->clean_array_gpc('p', array(
	'ul_link_1_name'   => TYPE_STR,
	'ul_link_1_url'    => TYPE_STR,
	'ul_link_2_name'   => TYPE_STR,
	'ul_link_2_url'    => TYPE_STR,
	'ul_link_3_name'   => TYPE_STR,
	'ul_link_3_url'    => TYPE_STR,
	'ul_link_4_name'   => TYPE_STR,
	'ul_link_4_url'    => TYPE_STR,
	'ul_link_5_name'   => TYPE_STR,
	'ul_link_5_url'    => TYPE_STR,
));

$userdata->set('ul_link_1_name', $vbulletin->GPC['ul_link_1_name']);
$userdata->set('ul_link_1_url', $vbulletin->GPC['ul_link_1_url']);
$userdata->set('ul_link_2_name', $vbulletin->GPC['ul_link_2_name']);
$userdata->set('ul_link_2_url', $vbulletin->GPC['ul_link_2_url']);
$userdata->set('ul_link_3_name', $vbulletin->GPC['ul_link_3_name']);
$userdata->set('ul_link_3_url', $vbulletin->GPC['ul_link_3_url']);
$userdata->set('ul_link_4_name', $vbulletin->GPC['ul_link_4_name']);
$userdata->set('ul_link_4_url', $vbulletin->GPC['ul_link_4_url']);
$userdata->set('ul_link_5_name', $vbulletin->GPC['ul_link_5_name']);
$userdata->set('ul_link_5_url', $vbulletin->GPC['ul_link_5_url']);

There are 5 link names as well as 5 link url settings. I was seeing xss_clean_url in some vb 4 code. And 2 examples I saw are:

Code:
$url = $vbulletin->input->xss_clean_url($url);
$rss['url'] = vB::$vbulletin->input->xss_clean_url($config['url']);

My question is, do I need to do anything else with the links besides the clean_array_gpc? And if so, where?

I am using these links in a user menu, by the way, if that means anything.
Reply With Quote
  #2  
Old 04-23-2011, 10:44 AM
Disasterpiece's Avatar
Disasterpiece Disasterpiece is offline
 
Join Date: Apr 2007
Location: GER
Posts: 765
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Normally I just use the mysql_real_escape_string function, because it basically works for any possible case without destroying my data. The vB pendant is somewhere in $vbulletin->db->clean() iirc. Normally you just need that.
If you find other functions doing the same? Maybe. I wouldn't stress too hard with any clean_array_* functions, just prepare the data when you actually need it.
the xss_clean_url could be a special case, where the url gets tested with some regex if it comes from the local site or not.

btw, if you're working with integer vars, best thing is:

PHP Code:
$query "SELECT * FROM whatever WHERE id = ".(int)$evilvar
So instead of pushing integer through expensive filter functions, a simple (int) cast ensures that the var is either 0 or a valid number.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 05:11 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03371 seconds
  • Memory Usage 2,172KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_code
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (2)post_thanks_box
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit_info
  • (2)postbit
  • (2)postbit_onlinestatus
  • (2)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete