Seiji Sogabe
sogab****@alles*****
2006年 4月 17日 (月) 23:59:59 JST
曽我部です。 KO-JI wrote: > 上記のURLの時に、 > > https://www.xxxx.com/admin1/categories.php?cPath=2&pID=2&action=new_product > > ↑のように違うカテゴリの商品編集の際のURLを入力しますと、 > 編集出来てしまいます。 上記の処理を行っているのは、 admin/categories.php の 317行目 > 317 if ($HTTP_GET_VARS['action'] == 'new_product') { > 318 if ( ($HTTP_GET_VARS['pID']) && (!$HTTP_POST_VARS) ) { > 319 $product_query = tep_db_query("select pd.products_name, pd.products_description, pd.products_url, p.products_id, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, date_format(p.products_date_available, '%Y-%m-%d') as products_date_available, p.products_status, p.products_tax_class_id, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" . $HTTP_GET_VARS['pID'] . "' and p.products_id = pd.products_id and pd.language_id = '" . $languages_id . "'"); > 320 $product = tep_db_fetch_array($product_query); > 321 > 322 $pInfo = new objectInfo($product); なので、products_idが $HTTP_GET_VARS['pID'] である商品を編集できる権限があるか確認して、 権限がなければ、redirectするなりすればよいのでは。 もしくは、スクリプトの最初で$HTTP_GET_VARS['pID'] が設定されているか確認したほうがいいか もしれません。 > その際に、 > 「プレビュー」のボタンを押して「更新」のページに行く際に、 > > https://www.xxxx.com/admin1/categories.php?cPath=1&pID=2&action=new_product > ^^^^^^^^^^^^^^^^ > cPath=1 に戻るのですが、商品のIDはそのままで、 > 「更新」しますと > > https://www.xxxx.com/admin1/categories.php?cPath=1 > > に戻るのですが、 > ID=2 の商品データは変更できてしまいます。 > > 希望としましては、この時に変更できないようなればうれしいです・・・ これも、actionによらず$HTTP_GET_VARS['pID'] や$HTTP_POST_VARS['products_id']を もとに商品を編集できる権限をスクリプトの最初で確認すればできるかもしれません。 > 伝わりましたでしょうか? 私が一番言いたかったことは、 >> そもそもosCommerceはそのような使いかたを想定していないので、スキルが >> ないとトラブルのもとです。 これです。余計な御世話かもしれませんが、PHPとかWebアプリケーションに詳しくないので あれば、今回の件は難易度が高すぎると思います。 では。 -- sogab****@alles*****